Word VBA Wildcard Поиск соответствия - PullRequest
2 голосов
/ 07 апреля 2011

Как мы можем извлечь результат поиска для поиска по шаблону в диапазоне?

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 

Приведенный выше код использует диапазон, чтобы найти любое целое слово в диапазоне, используя <*> в качестве шаблона шаблона.Но как я могу получить текущее совпадение / найденное слово?

1 Ответ

2 голосов
/ 07 апреля 2011
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, но я не знаю, как найти текст, который мог найти. Приведенный выше код модифицируется после запуска макроса, чтобы увидеть, какой вывод найдет результат.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...