在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
发表评论