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

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

将下面代码粘贴进去(由 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宏,点击执行

选择合并区域

点击确定后完成合并

Excel 批量逐列合并 VBA 宏
