-
点击“合并”按钮,结果如下图。
-----------------说明--------------------------
“合并”按钮是窗体控件,创建此按钮时提示:指定宏
选择iMerge这个宏,点击“确定”即可。
这个宏的编辑思路就是利用格式刷功能完成的。
简单来说就是,不直接在“人口”(D)列合并,
先在空白列对应的行里合并,然后,选择这个
空白列,点击“格式刷”,刷“人口”(D)列。
本问题的难点就是,表格中需要合并的单元格
不多,手工这样做还可以,否则,很费事,也
容易出错。另外,合并有数据的单元格时,出
现提示对话框(如下图),每次都要取消对话
框后,才能重新开始,也是够烦人的。
因此,用宏解决最好。
宏代码如下:
Sub iMerge()
Dim i%, n% '声明变量
Columns("D:D").Copy Range("F1") '将D列复制到空白列:F列
Range("F:F").ClearContents '清除复制过来的内容(F列的内容)
i = 2 '从第2行开始找需要合并的区域,进行合并
Do 'Do……Loop循环 开始
If Cells(i, 1) & Cells(i, 4) = _
Cells(i + 1, 1) & Cells(i + 1, 4) Then '若本行地址和人口与下一行的相同,就计数
n = n + 1 ‘计数以n表示
Else ' 否则
Cells(i - n, 6).Resize(n + 1).Merge '将本行往上的n+1行合并
n = 0 '计数清零,重新计数合并下一个区域
End If
i = i + 1 '判断本行后,再进行下一行
Loop Until Cells(i, 1) = "" '当下一行是空行,Do……Loop循环 结束,也就是合并完毕
Range("F:F").Copy '复制这个空白列:F列
Columns("D:D").PasteSpecial _
Paste:=xlPasteFormats, Operation:=xlNone '用格式刷刷“人口”列:D列
Columns("F:F").Delete ’删除空白列:F列
Range("A1").Select '定位A1单元格为选择状态
End Sub
宏代码运行完毕后,在F2输入公式=D2,下拉到最后一
行,结果与平常一般合并不同(如下图)。
一般合并,区域内只有左上角的单元格内有数据,
此合并,区域内的数据都有,只是显示左上角数据而已。
这个功能的好处很大,是一般合并无法比拟的。
罗里罗嗦说这么多,就是希望对你有所帮助。
如本站内容“对您有用”,欢迎随意打赏,让我们持续更新!
打赏