0

因此,我正在尝试处理 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

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

4

1 回答 1

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

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

于 2013-08-02T20:44:28.467 回答