有没有办法使此Word宏运行更快?

时间:2019-07-18 04:41:15

标签: vba ms-word

有时我需要计算对给定的Word文件进行了多少更改(即,文件中包含跟踪更改的百分比是多少,存在跟踪更改单词的数量)。问题是我当前使用的宏可能非常慢,我想要一个更快的版本。我正在使用Word for Office 365。

进行上述计算的最准确方法(我发现)是,首先使用代码对所有跟踪的更改应用黄色突出显示,然后使用更多代码计算黄色突出显示的文本的百分比,黄色突出显示的单词数。此信息以简单消息框的形式显示。计算不必是超级精确的,但是精确度越高越好。

这是当前代码:

Sub TrackingStats()
Dim arev As Revision
With ActiveDocument
.TrackFormatting = True
For Each arev In .Revisions
If arev.Type = wdRevisionInsert Then
arev.range.HighlightColorIndex = wdYellow
End If
Next
End With

Dim objWord As range
    Dim nHighlightedWords As Long
    Dim objDoc As Document

    Application.ScreenUpdating = False
    Set objDoc = ActiveDocument

    With Selection
         .HomeKey Unit:=wdStory
         With Selection.Find
              .Highlight = True

              Do While .Execute
                       nHighlightedWords = nHighlightedWords + Selection.range.ComputeStatistics(wdStatisticWords)
                       Selection.Collapse wdCollapseEnd
              Loop
         End With
    End With

    MsgBox ("Rough new words total:" & vbTab & Format(nHighlightedWords)) & vbCr & _
    ("Rough percentage:" & vbTab & Format(nHighlightedWords / ActiveDocument.range.ComputeStatistics(wdStatisticWords), "Percent") & "")
    Application.ScreenUpdating = True
    Set objDoc = Nothing
End Sub

在较短的文件(只有几页)中,宏似乎运行得很快,但是我使用的许多文档都很长,并且/或者有很多可跟踪的更改。 是否有人对如何改进上述代码以使其更快地工作而不使Word挂起有任何好的想法? 另外,是否有一种方法可以在不突出显示步骤的情况下获得相同的信息(更改的百分比,新单词的数量),但仍保持相似的准确性?

在此先感谢您的帮助。

0 个答案:

没有答案