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

(0)

相关推荐