还在为 Excel 合并相同内容单元格头疼吗?手动一个个合并太慢、容易漏,批量操作又怕删错数据?
今天给大家分享超实用的 VBA 批量合并技巧,无需复杂操作,复制代码直接用,一键合并一列中所有连续相同内容的单元格,报表整理、数据排版瞬间搞定!
一、适用场景
✅ 分类列、姓名列、部门列有连续重复值,需要合并美观展示
✅ 批量处理数据报表,统一单元格格式
✅ 拒绝手动合并,高效完成办公任务

二、核心提醒(必看)
合并单元格仅保留左上角第一个单元格的值,其余内容会被清除!
👉 运行代码前务必备份原表格,避免数据丢失!
三、完整 VBA 代码(直接复制)
Sub 按列合并相同内容()
'声明变量
Dim rng As Range
Dim i AsLong
Dim lastRow AsLong
'选择要合并的列区域(例如选中A2:A100)
Set rng = Application.InputBox("请选择要合并的列区域(如A2:A100)",Type:=8)
lastRow = rng.Rows.Count '获取选中区域行数
'关闭屏幕刷新 + 取消警告(合并覆盖提示)
Application.ScreenUpdating =False
Application.DisplayAlerts =False
'从下往上循环,避免合并后行号错乱
For i = lastRow To2Step-1
'如果当前单元格和上一个单元格内容相同,则合并
If rng.Cells(i,1).Value = rng.Cells(i -1,1).Value Then
Range(rng.Cells(i -1,1), rng.Cells(i,1)).Merge
End If
Next i
'恢复设置
Application.DisplayAlerts =True
Application.ScreenUpdating =True
MsgBox "合并完成!"
End Sub
四、3 步操作教程(新手也会)
第 1 步:打开 VBA 编辑器
打开需要处理的 Excel 表格,按下快捷键 Alt + F11,一键调出 VBA 窗口。
第 2 步:插入模块并粘贴代码
在 VBA 窗口顶部点击 插入 → 模块,将上面的完整代码直接粘贴到空白编辑区中。
第 3 步:运行代码,一键合并
- 点击确定,等待 1 秒,自动完成所有连续相同内容单元格合并
五、代码优势
✨ 全自动处理:无需手动干预,批量合并
✨ 安全稳定:从下往上循环,不打乱行号
✨ 无门槛使用:复制即用,不用懂 VBA 语法
✨ 高效快捷:几百行数据一秒合并完成
六、附赠:一键取消合并
合并错误想恢复?用这段代码,一秒撤销所有合并:
Sub 取消所选区域合并单元格()
Dim rng As Range
Set rng = Application.InputBox("请选择要取消合并的区域",Type:=8)
rng.UnMerge
MsgBox "已取消所有合并!"
EndSub
七、小技巧:合并后自动居中
合并后想让内容美观居中?在代码末尾添加这两行:
With rng
.HorizontalAlignment = xlCenter '水平居中
.VerticalAlignment = xlCenter '垂直居中
End With
文末小贴士
这个 VBA 合并方法是职场办公必备神器,处理报表、汇总数据超省心,收藏起来,下次遇到合并单元格直接用!
👍 点赞 + 收藏 + 转发,让更多职场人告别低效办公!关注我,每日更新 Excel 实用技巧,办公效率翻倍!