如何:在文档中搜索和替换文本
使用 Find 对象可以遍历 Microsoft Office Word 文档来搜索特定的文本、格式设置或样式,并使用 Replacement 属性替换找到的所有项。
**适用于:**本主题中的信息适用于 Word 2007 和 Word 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
以下代码搜索当前的选定内容,并将出现的所有 find me 字符串替换为 Found 字符串。 若要使用此示例,请从项目内的 ThisDocument 或 ThisAddIn 类中运行此示例。
示例
Private Sub SearchReplace()
Dim FindObject As Word.Find = Application.Selection.Find
With FindObject
.ClearFormatting()
.Text = "find me"
.Replacement.ClearFormatting()
.Replacement.Text = "Found"
.Execute(Replace:=Word.WdReplace.wdReplaceAll)
End With
End Sub
private void SearchReplace()
{
Word.Find findObject = Application.Selection.Find;
findObject.ClearFormatting();
findObject.Text = "find me";
findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = "Found";
object replaceAll = Word.WdReplace.wdReplaceAll;
findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
编译代码
Find 类有一个 ClearFormatting 方法,Replacement 类也有自己的 ClearFormatting 方法。 执行查找和替换操作时,必须使用这两个对象的 ClearFormatting 方法。 如果仅对 Find 对象使用该方法,文本替换的结果可能会无法预料。
使用 Find 对象的 Execute 方法替换每个找到的项。 若要指定要替换的项,请使用 Replace 参数。 此参数可为下列 WdReplace 值之一:
wdReplaceAll 替换找到的所有项。
wdReplaceNone 不替换找到的任何项。
wdReplaceOne 替换找到的第一项。