计算单词并忽略 Word VBA 中的新行

问题描述

我想计算文档中的所有单词,同时将新行作为单词忽略。 例如,在下一个示例中运行以下代码

    For Each sentence In x.StoryRanges
    For Each w In sentence.Words
            i = i + 1
     Next
    Next
    MsgBox i

示例:


这是一个测试

仍在测试


由于空行,将回显 "7" 而不是 6 个单词 (this,is,a,test,still,test)

有什么办法可以反击吗? 谢谢

解决方法

忘记遍历 SentencesWords,因为这样无法获得准确的结果。而是使用要计算单词的范围的 ComputeStatistics 方法。例如

ActiveDocument.Content.ComputeStatistics(wdStatisticWords)