学习Excel技术,关注微信公众号:
excelperfect
在使用VBA操作单元格时,合并的单元格可能会导致问题,甚至在工作表中进行一些操作时,合并的单元格也可能会导致错误。因此,如果我们能够识别合并的单元格,就可以确定对它们采取的操作。
下面的代码可以选择工作表中的合并单元格。
Sub SelectAllMergedCells()
Dim c As Range
Dim mergedCells As Range
Dim fullRange As Range
Dim rangeDescription As String
'统计所选区域中的单元格.
'如果只有1个单元格则搜索已用区域,
'否则搜索所选的单元格区域.
If Selection.Cells.Count > 1 Then
Set fullRange = Selection
rangeDescription = "所选单元格"
Else
Set fullRange = ActiveSheet.UsedRange
rangeDescription = "活动单元格区域"
End If
'遍历当前工作表所选区域中每个单元格
For Each c In fullRange
If c.MergeCells = True Then
'如果找到第1个单元格则设置该变量,
'否则添加到已存在的单元格列表
If mergedCells Is Nothing Then
Set mergedCells = c
Else
Set mergedCells =Union(mergedCells, c)
End If
End If
Next
'选择未锁定单元格的区域
If Not mergedCells Is Nothing Then
mergedCells.Select
Else
MsgBox rangeDescription & ": "& fullRange.Address & "中没有合并的单元格."
End If
End Sub
如果在工作表中仅选择了一个单元格,则查找并选择工作表中所有已用单元格中的合并单元格;如果在工作表中选择了多个单元格,则在所选单元格区域中查找并选择合并单元格。
一旦选择了所有合并单元格,就可以对它们进行处理了。
注:本文整理自exceloffthegrid.com,供有兴趣的朋友学习参考。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。