Microsoft Word VBA脚本接受所有删除?

9
我在Word 2010中处理了很多修订(多位作者使用跟踪更改)。我想创建一种方法,可以接受文档中的所有删除,而不接受插入。我进行了一些研究,并找到了一个声称可以实现此功能的VBA脚本示例,但它只给了我一个错误消息。这是几周前的事情,我找不到脚本或记得错误消息。
有人知道如何做到这一点吗?先感谢您。
解决方案:找到了我正在使用的代码,出于某种原因,它现在正在工作。
Sub AcceptDeletion()
Dim oChange As Revision
For Each oChange In ActiveDocument.Revisions
  With oChange
   If .Type = wdRevisionDelete Then
     .Accept
   End If
  End With
Next oChange
End Sub

1
什么错误信息?代码本来就可以正常工作。 - ForEachLoop
2个回答

2

如果你这样写:

If oChange.Type = wdRevisionDelete Then oChange.Accept

会更加简洁明了:

使用oChange
   如果.Type = wdRevisionDelete 那么 .Accept
结束使用

运行时出现“对象已被删除”的错误提示。如果.Type = wdRevisionDelete,但尝试将其与Nothing进行比较也不起作用。有什么解决方法吗?对象已被删除。 - Shakedk

0
上述脚本会在循环期间修改集合导致报错 "对象已被删除"。下面这个脚本可以解决该问题:
Sub AcceptDeletions()
Dim oChange As Revision
For i = ActiveDocument.Revisions.Count To 1 Step -1
If ActiveDocument.Revisions(i).Type = wdRevisionDelete Then
ActiveDocument.Revisions(i).Accept
End If
Next i
End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接