阿米尔在整个文档中使用不同的突出显示颜色。当他使用“查找并替换”来查找突出显示的文本时,它将所有突出显示的颜色视为相同。特别是,Amir希望使用“查找和替换”来定位以黄色突出显示的文本,而忽略文档中使用的任何其他突出显示颜色。

在探讨如何执行此操作之前,重要的一点是要讨论一下术语。当使用术语“突出显示的颜色”时,有人认为这是指应用于某些特定文本的颜色。它不是。突出显示不会更改字体的颜色。

使用文本突出显示颜色工具可以完成突出显示,该工具在功能区的“主页”选项卡上的“字体”组中可用。 (请参见图1。)

image

图1. Word使您可以使用不同的颜色突出显示文本。

使用“查找和替换”对话框时,可以指定要搜索突出显示的文本。 (将插入点放在“查找”框中,单击“格式”,然后单击“突出显示”。)当您单击“查找下一个”时,Word会选择下一个突出显示的文本,而不管用于突出显示该文本的颜色如何。换句话说,您不能指定只想查找以黄色,蓝色或绿色或任何其他颜色突出显示的文本。都是一样的。

我们尚未找到解决此问题的任何可靠方法。我们已经看到一些信息表明Word将只能找到在“文本突出显示颜色”工具中指定的任何突出显示颜色,但这不是事实。其他人指出,如果您选择一些突出显示的文本(以您要查找的颜色突出显示)

在显示“查找和替换”对话框之前,当您单击“查找下一个”时,只会找到该突出显示的颜色。这也不是真的。在所有情况下,“查找下一个”将查找任何突出显示的文本,而与突出显示所用的颜色无关。

解决此问题的唯一方法是使用宏进行查找。 VBA允许您检测用于突出显示文本的颜色,这就是这种方法行之有效的原因。下面的宏使用“查找并替换”来进行查找,但是随后将检查以查看HighlightColorIndexIndex属性对于找到的内容而言是什么。如果等于wdYellow(黄色的枚举),则选择文本并退出宏。

Sub FindNextYellow()

With Selection.Find         .ClearFormatting         .Replacement.ClearFormatting         .Text = ""

.MatchWildcards = False         .Forward = True         .Wrap = wdFindContinue         .Highlight = True         Do             .Execute         Loop Until Selection.Range.HighlightColorIndex = wdYellow _           Or Not .Found         Selection.Range.Select     End With End Sub

您只需将wdYellow枚举更改为所需颜色的枚举即可搜索不同的颜色。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(13552)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。