艾伦(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及更高版本)找到本技巧的版本: