我经常用 Word 对大量文档提供反馈。不幸的是,如果文档在保存时没有跟踪更改,我必须(记得)打开它。不幸的是,这种情况经常发生:我开始纠正文档,却发现有 10 多个更改,而我没有启用跟踪。
当然,解决方案是保存文档,然后进行比较。
但是比较工作流程需要大量点击。它没有默认使用当前文档作为比较中的文档之一。我必须将当前文档保存到新文件(还不错),但随后我必须通过文件对话框选择旧文件和新文件(这确实很麻烦)。
我的问题是:在忘记打开修订功能后,有没有更快的方法来恢复所做的更改?
大多数软件源代码编辑器都接受当前文档作为比较操作的文件之一,但 Word 似乎总是想要一个已保存的文件(并且它的 GUI 太笨了,无法将最近或当前打开的文件作为默认文件,甚至无法将文件字母顺序列表的顶部显示)。
另一个解决方案是启用“跟踪更改”任何我打开的文档。然而,从阅读这我感觉它只能设置为新的文件。
答案1
另一个解决方案是启用“跟踪更改”任何我打开的文档。
我找到了一种方法,当文档处于“受保护的视图”时,该方法也可以容忍打开跟踪更改的情况(ActiveDocument
在标准处理程序中无效Document_Open
,您必须捕获正确的事件)。
这是需要输入的 VBA 宏这个文件为了普通的项目:
Private WithEvents app As Word.Application
Private Sub Document_Open()
Set app = Word.Application
' Force track changes
' On error resume next, since Protected View Document_Open has different context
On Error Resume Next
ActiveDocument.TrackRevisions = True
End Sub
' see https://msdn.microsoft.com/en-us/library/office/hh128817(v=office.14).aspx
Private Sub app_ProtectedViewWindowBeforeClose(ByVal PvWindow As ProtectedViewWindow, ByVal CloseReason As Long, Cancel As Boolean)
Select Case CloseReason
Case wdProtectedViewCloseEdit
ActiveDocument.TrackRevisions = True 'safe to turn on here
End Select
End Sub