通过 Find 和 Replacement 对象可实现查找和替换功能。 可以从 Selection 对象和 Range 对象使用 Find 对象。 从 Selection 对象或 Range 对象访问 Find 对象时,查找操作会略有不同。
查找并选定文本
如果从 Selection 对象访问 Find 对象,当找到搜索条件时,就会更改所选内容。 以下示例选择单词“Hello”的下一个匹配项。如果在找到单词“Hello”之前到达文档的末尾,则搜索将停止。
With Selection.Find
.Forward = True
.Wrap = wdFindStop
.Text = "Hello"
.Execute
End With
Find 对象包括与 "查找和替换" 对话框中的选项相关的属性。 可以设置 Find 对象的各个属性或使用 Execute 方法的参数,如下例所示。
Selection.Find.Execute FindText:="Hello", _
Forward:=True, Wrap:=wdFindStop
查找文字,但不更改所选内容
如果从 Range 对象访问 Find 对象,则找到搜索条件时,不更改所选内容,但是会重新定义 Range 对象。 下列示例在活动文档中查找第一个出现的"blue"。 如果找到该单词,则重新定义该区域,并将加粗格式应用于单词"blue"。
With ActiveDocument.Content.Find
.Text = "blue"
.Forward = True
.Execute
If .Found = True Then .Parent.Bold = True
End With
下面的示例使用 Execute 方法的参数,执行结果与上例相同。
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="blue", Forward:=True
If myRange.Find.Found = True Then myRange.Bold = True
使用 Replacement 对象
Replacement 对象代表查找和替换操作的替换条件。 Replacement 对象的属性和方法对应于“查找和替换”对话框中的选项(单击“编辑”菜单中的“查找”或“替换”命令可显示该对话框)。
可通过 Find 对象使用 Replacement 对象。 下面的示例将所有单词"hi"替换为"hello"。 由于 Find 对象是通过 Selection 对象访问的,因此当找到搜索条件时,会更改所选内容。
With Selection.Find
.ClearFormatting
.Text = "hi"
.Replacement.ClearFormatting
.Replacement.Text = "hello"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
下面的示例取消活动文档中的加粗格式。 对于 Find 对象,Bold 属性为 True,对于 Replacement 对象为 False。 若要查找和替换格式,请将查找和替换文本设置为空字符串 (“”) ,并将 Execute 方法的 Format 参数设置为 True。 所选内容保持不变,因为 Find 对象是从 Range 对象访问的, (Content 属性) 返回 Range 对象。
With ActiveDocument.Content.Find
.ClearFormatting
.Font.Bold = True
With .Replacement
.ClearFormatting
.Font.Bold = False
End With
.Execute FindText:="", ReplaceWith:="", _
Format:=True, Replace:=wdReplaceAll
End With
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。