萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 辦公室軟體 >  >> Excel 教學 >> Excel 綜合

撰寫 VBA 宏讓 Excel 自動合併所選單元格內容

在整理 Excel 表格數據時,我們常需要將選取區域內所有單元格的文字或數值合併成一個字串。Excel 內建的「合併儲存格」功能只會保留左上角的資料,無法滿足這項需求。此時,撰寫一個簡單的 VBA 宏(巨集)即可完美解決:它會遍歷選取區域的每一個儲存格,將內容依序累加到變數中,最後將結果寫入合併後的單元格,並自動置中對齊。

核心 VBA 程式碼

Sub 合併單元格內容()
    ' 關閉螢幕更新與警告提示以提升效能
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    Dim i As Long
    Dim StrTotal As String

    ' 迴圈累加選取區域內所有儲存格的值
    For i = 1 To Selection.Count
        StrTotal = StrTotal & Selection.Cells(i).Value
    Next i

    ' 設定合併後的單元格格式
    With Selection
        .MergeCells = True
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Value = "'" & StrTotal  ' 前置單引號避免數值被視為日期或科學記號
    End With

    ' 還原環境設定
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

部署與使用步驟

  1. 按 Alt+F11 開啟 VBE 編輯器,在 ThisWorkbook 或標準模組中貼上上述程式碼。
  2. 關閉 VBE,回到 Excel。至「檔案」→「選項」→「自訂功能區」,勾選「開發工具」標籤。
  3. 在「開發工具」標籤點選「巨集」,選擇 合併單元格內容,點選「選項」指定快捷鍵(如 Ctrl+Shift+M),或將其加入「快速存取工具列」建立專屬按鈕。
  4. 實測:在幾個不相鄰的儲存格輸入文字、數字或混合資料,框選它們,執行巨集,即可看到所有內容已合併至單一儲存格並完美置中。

進階提示

  • 若需以特定符號(如逗號、換行符)分隔內容,可在迴圈中修改 StrTotal = StrTotal & Selection.Cells(i).Value & ","。
  • 此宏適用於任意形狀的選取區域(連續或不連續區域皆可)。
  • 儲存檔案時請選擇 「Excel 啟用巨集的活頁簿 (.xlsm)」 格式,否則巨集將遺失。
copyright © 萬盛學電腦網 all rights reserved