EXCEL VBA 合并与撤销合并单元格代码
合并单元格代码
合并单元格的代码
Sub 合并单元格()
Dim irow As Integer
Dim i As Integer
Application.ScreenUpdating = False '关闭屏幕闪烁
Application.DisplayAlerts = False '关闭提示信息
irow = Range('A' & Rows.Count).End(xlUp).Row '计算最大行行号
For i = irow To 2 Step -1 '循环操作 从最后一行循环到第二行
Range('H' & i).Value = Range('H' & i).Value + Range('G' & i).Value ' 先做金额累加
If Range('A' & i).Value = Range('A' & i - 1).Value Then '如果上一个单元格的值和当前单元格的值一样
Range(Range('A' & i), Range('A' & i - 1)).Merge '单元格合并
Range(Range('H' & i), Range('H' & i - 1)).Merge '金额小计 单元格合并
End If
Next i
Application.DisplayAlerts = True '打开闪烁
Application.ScreenUpdating = True '打开提示信息
End Sub
视频地址1:https://www.ixigua.com/6909006504704246286?id=6915747037220864515&logTag=QIyEZKWXHiOHv1yq_vsEv
视频地址2:https://www.ixigua.com/6909006504704246286?id=6916681823514788364&logTag=9cv3p1cXLk-Juoa6pGbGd
撤销合并单元格代码
撤销合并单元格的代码
Sub 撤销合并单元格()
Dim irow As Integer
Dim i As Integer
Application.ScreenUpdating = False '关闭屏幕闪烁
Application.DisplayAlerts = False '关闭提示信息
irow = Range('B' & Rows.Count).End(xlUp).Row '计算最大行行号
'这里不计算合并单元格那一列,因为合并后,后面几行相同的数据没有了,只保留了第一行的数据,定位的时候,不能定位到最大行
'因此我们需要选择重新选择一列来定位最大行 一般最后一行有数据的列就可以了
For i = 2 To irow '正序循环
If Range('A' & i).MergeCells = True Then Range('A' & i).UnMerge '如果单元格是合并单元格就取消合并
If Range('A' & i).Value = '' Then Range('A' & i).Value = Range('A' & i - 1).Value '单元格的值与上一个单元格的值一样
Next i
Application.DisplayAlerts = True '打开闪烁
Application.ScreenUpdating = True '打开提示信息
End Sub
视频地址3:https://www.ixigua.com/6909006504704246286?id=6917434076618031620&logTag=0eggqRns-8qmYMJOi6fFo