Excel 批量逐列合并 VBA 宏

最近更新于 2026-04-30 11:14

2026/4/30
Excel 只提供了批量逐行合并(跨越合并),在大多数情况下足够使用,但是难免遇到需要批量逐列合并的,手动操作太麻烦。
file

在要操作的表格处于打开状态下,按 Alt+F11 打开 VBA 编辑器,插入模块
file

将下面代码粘贴进去(由 Google Gemini 生成)

Sub BatchMergeByColumnsWithPicker()
    Dim selectedRange As Range
    Dim col As Range

    ' 弹出选择框,Type:=8 表示要求用户选择一个单元格区域 (Range)
    ' On Error Resume Next 用于处理用户点击“取消”的情况
    On Error Resume Next
    Set selectedRange = Application.InputBox( _
        Prompt:="请用鼠标拖选你想要【按列合并】的区域:", _
        Title:="选择合并区域", _
        Type:=8)
    On Error GoTo 0

    ' 检查用户是否点击了取消
    If selectedRange Is Nothing Then
        Exit Sub
    End If

    ' 性能优化:关闭屏幕闪烁和覆盖警告
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    ' 执行按列合并逻辑
    For Each col In selectedRange.Columns
        col.Merge
        col.HorizontalAlignment = xlCenter
        col.VerticalAlignment = xlCenter
    Next col

    ' 恢复设置
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    MsgBox "已完成对选定列的批量合并!", vbInformation
End Sub

回到要操作的表格,按Alt+F8打开运行宏对话框,选中BatchMergeByColumnsWithPicker宏,点击执行
file

选择合并区域
file

点击确定后完成合并
file

Excel 批量逐列合并 VBA 宏
Scroll to top