Sub MergeRange()
Dim rngData As Range
Dim i, lngCol, lngFirst, lngLast
'On Error Resume Next
Set rngData = Application.InputBox("请选择单列数据列!", Default:=Selection.Address, Type:=8)
Set rngData = Intersect(rngData.Parent.UsedRange, rngData) 'intersect语句避免用户选择整列造成低效运算
lngCol = rngData.Column 'rngData所在列
lngFirst = rngData.Row '用户选择的区域并不是一定从第一行开始,使用此句读取开始行
lngLast = lngFirst + rngData.Rows.Count - 1 'rngData结束行
Application.ScreenUpdating = False '取消屏幕刷新
Application.DisplayAlerts = False '取消消息提醒。
rngData.Parent.Select '激活rngData对象所在的工作表,避免跨工作表操作问题
For i = lngLast To lngFirst + 1 Step -1 '对rngData进行从尾向前遍历
If Cells(i, lngCol) = Cells(i - 1, lngCol) Then
Cells(i - 1, lngCol).Resize(2, 1).Merge
End If
Next
rngData.VerticalAlignment = xlCenter '单元格格式上下居中
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "合并完成!"
End Sub
VBA实例02:批量合并单元格
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 经常用Excel的伙伴肯定会碰到这个问题。 在好多个单元格里分别有数据,我们想把它们合并到一个大的单元格里面去。如...
- 各位好,永恒君今天分享的VBA实例内容是快速合并n多个相同值的单元格。如下图所示,A列是分组字段,需要将相同的分组...
- 由表A到表B,同一部门名称合并,你是一次一次选中同一部门,点击“合并单元格”吗? 由表B到表A,你是取消“合并单元...
- 上一篇文章介绍了批量将工作簿拆分为单独的文件,那么有拆自然就要有合并。今天就来说说合并的事。 同样,先看效果 一键...