标识合并的单元格(Microsoft Excel)
艾伦(Alan)问道,是否有一种方法可以快速,轻松地识别其他人创建的工作簿中合并的单元格。实际上,可以使用几种不同的方法来识别这些单元格。
识别单元格的一种方法是使用Excel的搜索功能。请按照下列步骤操作:
。按Ctrl + F。 Excel将显示“查找和替换”对话框的“查找”选项卡。
。如有必要,请单击“选项”按钮以确保“查找和替换”对话框已展开以显示所有选项。 (请参见图1。)
。确保“查找内容”框为空。
。将插入点放在“查找内容”框中,单击“格式”按钮。 Excel将显示“查找格式”对话框。
。确保显示“对齐”选项卡。 (请参见图2。)
。确保选中“合并单元格”复选框(复选框中应有一个复选框)。
。单击“确定”关闭“查找格式”对话框。
。单击全部查找。
Excel搜索任何合并的单元格,如果找到它们,这些单元格将显示在“查找和替换”对话框的底部。然后,您可以选择找到的范围之一,并在工作表中选择相应的范围。
如果愿意,可以使用宏在工作表中查找各种合并的单元格。以下宏可能显示了执行此操作的最简单方法:
Sub FindMerged1() Dim c As Range For Each c In ActiveSheet.UsedRange If c.MergeCells Then MsgBox c.Address & " is merged" End If Next End Sub
这个特定的宏逐步遍历工作表中的所有单元格(至少是UsedRange中的单元格),并且,如果该单元格是合并单元格的一部分,则会显示一个消息框。请注意,要检查的相关属性是MergeCells属性。如果该单元格与另一个单元格合并,则将其设置为True。
当然,如果工作表中有很多单元格,则这样的宏可能要花很长时间才能运行,而如果合并了很多这样的单元格,则可能需要更长的时间。如果您的宏没有在每个合并的单元格处停止并显示一个对话框,它将运行得更快。以下版本采用了不同的方法,用黄色填充每个合并的单元格:
Sub FindMerged2() Dim c As Range For Each c In ActiveSheet.UsedRange If c.MergeCells Then c.Interior.ColorIndex = 36 End If Next End Sub
这种方法的一种变化可能是创建一个用户定义的函数,如果合并单元格,该函数将简单地返回True或False:
Function FindMerged3(rCell As Range) FindMerged3 = rCell.MergeCells End Function
通过此简单功能,您可以使用条件格式以某种方式突出显示合并的单元格。 (如果函数返回True,则条件格式将应用您指定给单元格的任何格式。)
最后,如果要在工作表中合并单元格列表,则只需将宏放到列表中即可,而不用给单元格上色:
Sub FindMerged4() Dim c As Range Dim sMsg As String sMsg = "" For Each c In ActiveSheet.UsedRange If c.MergeCells Then If sMsg = "" Then sMsg = "Merged worksheet cells:" & vbCr End If sMsg = sMsg & c.Address & vbCr End If Next If sMsg = "" Then sMsg = "No merged worksheet cells." End If MsgBox sMsg End Sub
此变体在宏的末尾显示一个消息框,指示位于工作表中任何合并的单元格的地址。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(3905)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: