WORD VBA Count Wild Search Поиск Хитов - PullRequest
2 голосов
/ 31 марта 2011

Привет, у меня есть коды ниже, которые уже работают отлично.Что я не могу понять, так это подсчитать, сколько раз поиск по шаблону находит совпадение.Может кто-нибудь сказать мне, как я могу пойти по этому поводу?Коды следующие:

Sub findfunction()
If (findHL(activedocument.Content, "[aeiou]")) = True Then MsgBox "Highlight vowels   Done", vbInformation + vbOKOnly, "Vowels Highlight Result"
If (findHL(activedocument.Range, "<wa*>")) = True Then MsgBox "Highlight words beginning with WA", vbInformation + vbOKOnly, "Prefix Find Result"
End Sub

Function findHL(r As Range, s As String) As Boolean
Options.DefaultHighlightColorIndex = wdRed
r.Find.Replacement.highlight = True
r.Find.Execute FindText:=s, MatchWildcards:=True, Wrap:=wdFindContinue, Format:=True,  replace:=wdReplaceAll

findHL = True
End Function

Любая помощь будет принята с благодарностью.Спасибо, ребята!

1 Ответ

2 голосов
/ 31 марта 2011

Я думаю, вам просто нужно статическое поле Counter, определенное в верхней части вашего модуля - т.е. не внутри какой-либо подпрограммы или функции (что делает его статическим):

dim MatchCounter as long

Просто инициализируйте в нольподходящее место и приращения функции соответствия на каждом совпадении.(Может также обернуть это в небольшой класс, если логика инициализации / логика обновления распределена и трудно ее определить).

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