如何从 VBA 中的 Word 文档的开头查找特定关键字?

How to Find a Specific Keyword from the beginning of the Word Document in VBA?

我正在使用 Word VBA。我想从文档的开头找到一个特定的关键字“MyTest”,然后重复直到找到所有出现的地方。如何操作?

我使用宏录制,得到如下代码:

    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "MyTest"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute

这似乎只从当前位置开始查找,并且 return 关键字的一个实例?

宏录制器不会给你最好的代码,因为它只能录制你在屏幕上所做的事情。这意味着它始终适用于 Selection 对象,即您在屏幕上选择的任何对象。

相反,您应该使用 Range 对象设置为您要使用的文档部分。除非您使用 ReplaceAll,否则您还需要重复执行 Find,直到找到所有匹配项。

以下是您可以修改的通用例程。

Sub FindSomeTextAndDoSomething(textToFind As String)
  Dim findRange As Range
    
  Set findRange = ActiveDocument.Content
    
  With findRange.Find
    .ClearFormatting
    .Text = textToFind
    .Replacement.Text = ""
    .Wrap = wdFindStop
    .Format = False
    Do While .Execute = True
      'add code here to do something with the found text
      'collapse range to continue
      findRange.Collapse wdCollapseEnd
    Loop
  End With
End Sub