2011-03-16 296 views
2

我有下面的代码已在工作,但仍需要进行微调。它的功能是为通配符搜索字符串找到匹配项并突出显示出现的情况。但我相信它仍然可以用一条线代替全部。我尝试了几乎所有我可能想到的事情,我认为是时候向专家询问这个问题了。请告诉我如何以更短的方式完成这项工作。任何帮助将不胜感激。谢谢!Word VBA查找并突出显示匹配项

Sub findfunction() 
If (findHL(activedocument.Range, "[aeiou]")) = True Then MsgBox "Highlight vowels Done", vbInformation + vbOKOnly, "Vowels Highlight Result" 
End Sub 

Function findHL(r As Range, s As String) As Boolean 
Dim rdup As Range 
Set rdup = r.Duplicate 
rdup.Find.Wrap = wdFindStop 

Do While rdup.Find.Execute(findtext:=s, MatchWildcards:=True) = True 
    If (Not rdup.InRange(r)) Then Exit Do 
    rdup.HighlightColorIndex = wdBlue 
    rdup.Collapse wdCollapseEnd 
Loop 

findHL = True 
End Function 

回答

0

我设法找到我自己的解决方案做几个试验。这里是我的解决方案仅供参考别人谁可能会寻找相同的解决方案,我以前的问题:

Sub findfunction() 
If (findHL(activedocument.Content, "[aeiou]")) = True Then MsgBox "Highlight vowels Done", vbInformation + vbOKOnly, "Vowels Highlight Result" 
End Sub 

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

简单,但是它剥夺了我以前的代码,几行。

+1

谢谢您的回答。 “高亮”属性是否适用于屏幕视图或文档内容。换句话说,它是视觉线索还是文档的一部分(并在本例中打印)。我正在寻找一种方法来向用户强调一些内容。 – 2011-10-06 09:04:36

2

隐藏很深的谷歌内部:

Options.DefaultHighlightColorIndex = wdYellow 

Selection.find.HitHighlight(string)