VBA查找循环丢失事件

时间:2013-08-02 20:39:22

标签: vba ms-word

所以我正在尝试处理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

如何解决此问题的任何帮助或建议,或完成我想要的新代码,将不胜感激。

1 个答案:

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

*免责声明代码未经测试。