WORD VBA计数通配符搜索命中

时间:2011-03-31 13:09:23

标签: vba ms-word wildcard word-vba

您好我的代码已经完美无缺。我无法弄清楚的是如何计算通配符搜索找到匹配的次数。有谁能告诉我怎么能这样做?代码如下:

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 个答案:

答案 0 :(得分:2)

我认为你只需要在模块顶部定义一个静态计数器字段 - 即不在任何子或函数内(这使它成为静态):

dim MatchCounter as long

只需在适当的位置初始化为零,并在每次匹配时使用匹配的函数增量。 (如果初始化逻辑/更新逻辑遍布并且很难确定,那么也可以将它包装在一个小类中。)