在excel中经常会有合并单元格,处理含合并单元格的表格也是一项经常的工作。
为了方便快速地编写处理含合并单元格的代码,下文列举了一个通用的处理excel合并单元格的代码:
Sub QQ1722187970()
Dim oWK As Worksheet
'定义要处理的表格对象变量
Set oWK = Sheet1
Dim oRng As Range
Dim oRngMerge As Range
Dim sTemp As String
With oWK
'返回没有合并单元格的列的最后一行
iRow = .Range("b65536").End(xlUp).Row + 1
'为了避免最后的合并单元格没有结尾,添加辅助单元格
.Cells(iRow, "b") = "temp"
'从有数据的单元格开始遍历
For i = 2 To iRow - 1
'判断有合并单元格的列区域
Set oRng = .Cells(i, "a")
'每次遇到合并单元格的开始时,临时变量清空
If Len(oRng) Then sTemp = ""
'如果存在合并单元格,开始处理
If oRng.MergeCells Then
'第一次处理时sTemp为空
If Len(sTemp) = 0 Then
'定义合并的单元格区域
Set oRngMerge = oRng.MergeArea
'遍历合并的单元格区域占用的单元格区域
For j = i To i + oRngMerge.Count - 1
'要处理的代码
Next j
Else
'如果临时变量有值了,则不再遍历合并单元格占用的单元格区域
'要处理的代码
End If
Else
'没有合并单元格的处理代码
'**************'
End If
Next i
'清除辅助的单元格
.Cells(iRow, "b") = ""
End With
MsgBox "操作完毕!"
End Sub


发表评论