有时我需要计算对给定的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挂起有任何好的想法? 另外,是否有一种方法可以在不突出显示步骤的情况下获得相同的信息(更改的百分比,新单词的数量),但仍保持相似的准确性?
在此先感谢您的帮助。