Word VBA通​​配符搜索匹配

时间:2011-04-07 07:27:31

标签: vba ms-word wildcard word-vba

如何在范围内提取通配符搜索的查找结果?

dim r as range
set r = activedocument.range

Do While r.Find.Execute(findtext:="<*>", MatchWildcards:=True) = True
     Msgbox <Show the matching word it found here>
     if **<the word it matched>** = "Stop" then do something here
Loop 

上述代码使用范围通过使用&lt; *&gt;来查找范围内的任何整个单词。作为通配符模式。但是我怎样才能得到它找到的当前匹配/单词?

1 个答案:

答案 0 :(得分:2)

Sub test()
Dim r As Range
Set r = ActiveDocument.Range
r.Select

With Selection.Find
    .ClearFormatting
    .Text = "<*>"
    .Forward = True
    .Wrap = wdFindStop
    .MatchWildcards = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
End With

Do While Selection.Find.Execute
     If Selection.Text = "stop" Then MsgBox "wohoo"
Loop
End Sub
编辑:我对单词对象模型不太熟悉。 Find方法适用于Range,但我不知道如何找到它可以找到的文本。运行宏后,上面的代码会被修改,以查看找到的输出产生的内容。

希望有所帮助。