所以我正在尝试处理Word文档,并简单地加粗所有特定术语。问题是当我在测试段落上运行以下代码时,我的搜索词出现了7次,其中只有两个得到了粗体。我在段落中用不同的单词尝试过它,它总是看起来大约是实际数字的四分之一。一个有趣的功能,我不能确认是普遍的,但似乎是这样的,第一个术语总是被跳过,它加粗一次,跳过两次,得到一个,依此类推。我也试过改变找到的选项无济于事。
Sub HighlightTerm()
Dim highRange As Range
Set highRange = ActiveDocument.Content
Do
With highRange.Find
.Text = "inflation"
.MatchWholeWord = True
.Execute
End With
If highRange.Find.Execute Then
highRange.Font.Bold = True
End If
Loop While highRange.Find.Execute
End Sub
如何解决此问题的任何帮助或建议,或完成我想要的新代码,将不胜感激。
答案 0 :(得分:1)
我怀疑它是因为每次运行highRange.Find.Execute方法时,都会进行另一次搜索。我看到你在循环中执行了三次。也许你应该尝试这样的事情:
Sub HighlightTerm()
Dim highRange As Range
Dim blnFound as boolean
Set highRange = ActiveDocument.Content
Do
With highRange.Find
.Text = "inflation"
.MatchWholeWord = True
End With
blnFound=highRange.Find.Execute
If blnFound Then
highRange.Font.Bold = True
End If
Loop While blnFound
End Sub
*免责声明代码未经测试。