Excel 里合并单元格填充序号,是不是你的日常痛点?
选中下拉全是 1、手动输入又慢又容易错、合并大小不一直接乱序……
今天给大家分享一段极简 VBA 代码,选中合并单元格区域,一键自动生成连续、不重复的序号,合并再多、格式再乱都能完美适配!
先看效果:✅ 自动识别合并单元格,只给每个合并块填 1 个序号✅ 连续递增:1、2、3、4…… 不会重复、不会断号✅ 一键居中对齐,美观又规范✅ 选中哪里填哪里,灵活不破坏原表格
一、先上完整 VBA 代码(直接复制可用)
这段代码专门针对合并单元格序号填充优化,逻辑严谨、运行流畅,新手零门槛使用。
Sub 合并单元格序号填充()
'功能:对选中区域的合并单元格自动填充连续序号,并居中对齐
Dim rng As Range
Dim cell As Range
Dim i AsLong
'关闭屏幕闪烁,提升运行速度
Application.ScreenUpdating =False
'设置填充区域为你手动选中的单元格
Set rng = Selection
'序号从1开始,可自行修改
i =1
'遍历选中区域的每一个单元格
For Each cell In rng
'核心判断:只给合并区域的第一个单元格赋值
If cell.Row = cell.MergeArea.Row Then
cell.Value = i
i = i +1
EndIf
Next cell
'统一设置水平、垂直居中
rng.HorizontalAlignment = xlCenter
rng.VerticalAlignment = xlCenter
'恢复屏幕刷新
Application.ScreenUpdating =True
MsgBox "序号填充完成!"
End Sub
二、30 秒使用教程(新手一看就会)
步骤 1:打开 VBA 编辑器
打开需要处理的 Excel 表格 → 按快捷键 Alt + F11
步骤 2:插入代码模块
右键左侧工作表名称 → 插入 → 模块把上面的完整代码直接粘贴到模块窗口中
步骤 3:返回 Excel 使用
- 用鼠标选中需要填充序号的合并单元格区域
✅ 瞬间完成:连续序号 + 自动居中,完美!
三、代码核心逻辑(看懂了更灵活)
很多小伙伴不敢用 VBA,其实这段代码逻辑超简单:
- 关闭屏幕刷新
- 选中即填充
Set rng = Selection - 关键判断:只给合并块第一个格子赋值
If cell.Row = cell.MergeArea.Row Then这是整段代码的灵魂!自动识别合并单元格,只在合并区域第一行赋值,避免一个合并块出现多个序号- 序号自动递增
- 一键居中
四、适用场景
✅ 考勤表、统计表、花名册合并单元格序号
✅ 不规则合并单元格(大小不一也能用)
✅ 批量序号填充,替代手动输入 + 下拉失效
✅ 报表整理、数据规范格式化
五、小技巧(进阶使用)
- 想从 10 开始填充?
- 只想水平居中,不要垂直居中?删除代码里的
rng.VerticalAlignment = xlCenter - 添加到快速访问栏,一键运行宏设置好后,添加到快速访问栏,下次点一下就运行,效率翻倍
六、常见问题
🔴 运行没反应?检查是否选中了合并单元格区域,没选中代码不会执行
🔴 序号乱了?不要选中整列 / 整行,精准选中需要填充的合并区域
🔴 宏无法运行?保存文件时选择 .xlsm 格式(启用宏的工作簿)
总结
合并单元格填充序号,一直是 Excel 高频痛点。这段 VBA 代码轻量、稳定、通用,不管是办公、学习还是做报表,都能帮你省下大量重复操作时间。
建议大家收藏代码 + 保存文件,以后遇到合并单元格序号,一键搞定!
💡 关注我,每天一个 Excel 高效小技巧,办公不加班!