史蒂文一直在他的文档中使用Track Changes。他需要一种方法来仅计算文档中已更改的单词(那些受“曲目更改”影响的单词)。

答案是,您可以通过使用“审阅窗格”来获得所需的信息。显示功能区的“审阅”选项卡,然后单击“审阅窗格”工具(在“跟踪”组中)。 Word在屏幕上显示“审阅窗格”,并且窗格顶部是文档中所做修订的摘要。它显示以下五个更改的统计信息:

插入删除移动格式更改*评论

这些统计信息似乎很合适,但您会记得我说过,它们提供了所需的“某种”信息。如果您真正想要的是已更改的单词数,则它们会有些不足。统计信息计数变化,而不是单词变化。例如,如果您删除由多个单词组成的短语,则该编辑将被视为统计信息中的单个删除。同样,如果在文档中添加一个短语,即使该插入包含完整的段落,该添加也算作单个插入。

如果您希望更改实际单词,那么很遗憾,您很不幸-Word无法提供获取所需信息的方法。但是,您可以设计自己的宏来确定所需的信息。这是一个示例:

Sub GetTCStats()

Dim lInsertsWords As Long     Dim lInsertsChar As Long     Dim lDeletesWords As Long     Dim lDeletesChar As Long     Dim sTemp As String     Dim oRevision As Revision          lInsertsWords = 0     lInsertsChar = 0     lDeletesWords = 0     lDeletesChar = 0     For Each oRevision In ActiveDocument.Revisions         Select Case oRevision.Type             Case wdRevisionInsert                 lInsertsChar = lInsertsChar + Len(oRevision.Range.Text)

lInsertsWords = lInsertsWords + oRevision.Range.Words.Count             Case wdRevisionDelete                 lDeletesChar = lDeletesChar + Len(oRevision.Range.Text)

lDeletesWords = lDeletesWords + oRevision.Range.Words.Count         End Select     Next oRevision

sTemp = "Insertions" & vbCrLf     sTemp = sTemp & "    Words: " & lInsertsWords & vbCrLf     sTemp = sTemp & "    Characters: " & lInsertsChar & vbCrLf     sTemp = sTemp & "Deletions" & vbCrLf     sTemp = sTemp & "    Words: " & lDeletesWords & vbCrLf     sTemp = sTemp & "    Characters: " & lDeletesChar & vbCrLf     MsgBox sTemp End Sub

此宏逐步浏览当前文档中的每个更改,并分别对插入和删除操作的字数和字符数求和。然后将统计信息显示在消息框中。请注意,宏将查看Words集合中文档中的每个更改。

您应该了解,此处显示的字数是一个近似值。这是因为单词计数的方式。例如,加法中的每个标点符号都算作一个单独的单词。这意味着诸如“正如人们所见,这是一个好方法”之类的短语将被计为十个单词而不是九个单词(逗号作为一个单独的单词)。此外,如果您添加的词组包含一个前导空格(插入经常会出现这种情况),则由于该空格,将有十一个单词要插入。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(11484)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: