Word 2010 vba查找并转到最近跟踪的更改

时间:2014-08-20 19:37:46

标签: vba ms-word change-tracking

我有一个宏,可以查找最后一天所做的所有跟踪更改并突出显示它们。

Sub HilightNewChanges()

'''''''''''''
' Finds tracked changes made in the last day, and
' highlights them (without tracking the highlighting)
'''''''''''''

Dim bTrackingAsWas As Boolean
    bTrackingAsWas = ActiveDocument.TrackRevisions

    ActiveDocument.TrackRevisions = False
    ActiveDocument.ShowRevisions = True

  Dim aRev As Revision
  For Each aRev In ActiveDocument.Revisions
    If aRev.Date > Now() - 1 Then
      aRev.Range.HighlightColorIndex = wdYellow
      Selection.Collapse wdCollapseEnd
    End If
  Next aRev

    ActiveDocument.TrackRevisions = bTrackingAsWas
    ActiveDocument.ShowRevisions = True

End Sub

我需要对此进行更改,以便突出显示所有这些内容,而不是突出显示所有这些文档,以便我可以查看新的更改。我已经尝试用If

替换两行
    aRev.Range.GoTo What:=aRev

但是我收到了“错误的参数”错误。我在其他宏中使用过GoTo,但只使用了书签。我是否需要再次使用书签才能获得我需要的内容?如何构建If或Loop以使其在每个之后停止?

1 个答案:

答案 0 :(得分:0)

Range.GoTo用于获取特定类型的范围。 What参数必须是一组特定的常量之一,例如wdGoToLine

相反,您可以选择您已经获得的范围的开头:

aRev.Range.Select
Selection.Collapse

要使它在每一个之后停止,最简单的方法是重新编写它,以便在当前插入点之后找到下一个匹配的修订版,而不是一次查找所有这些修订版。如果为宏指定热键,则可以很容易地继续运行它。