有没有办法通过Excel中的VBA触发“跟踪更改”?
我想从VBA开始/停止Excel中的“跟踪更改”function。
通过networkingsearch,我看到了一个叫做ActiveDocument
对象的TrackRevisions
的属性。 据说在MS Word中写入ActiveDocument.TrackRevisions = True
应该打开“跟踪更改”。
但在MS Excel中,这一行提供了424 Object required
运行时错误。 尝试使用ThisWorkbook
时返回相同的错误。 将其更改为ActiveSheet
带来438 Object doesn't support this property or method
错误。
对于共享工作簿 ,可以使用这些链接中的VBA(方法是ActiveWorkbook.HighlightChangesOptions
)
- HighlightChangesOptions方法Excel 2003 VBA语言参考
- Workbook.HighlightChangesOptions方法Office 2007
- Workbook.HighlightChangesOptions方法(Excel)Office 2010
这不提供Word中可用的跟踪深度 ,例如从我的post的第一个链接,在Excel中:
- 更改跟踪与撤消和备份不同
- 某些types的更改未被跟踪您对单元格内容所做的更改将被跟踪,但其他更改(例如格式更改)不会被跟踪。
- 更改历史logging仅保留特定的时间间隔
- 更改历史logging会定期删除
如果这不是你所追求的,你可能可以使用特定的VBA进行跟踪
- 某些细胞,或
- 比较版本
但是如果是这样的话,我们将需要更多的信息来告诉你正在追逐什么。
您可以使用下面的代码。 录制macros时,您将看到此代码。
With ActiveWorkbook .HighlightChangesOptions When:=xlAllChanges .ListChangesOnNewSheet = False .HighlightChangesOnScreen = True End With
这些问题真的是你想要达到的。 如果您想跟踪电子表格中的更改,我假设您有一些其他用户正在编辑工作簿,并且您想要logging谁更改了什么,以及稍后审核/批准任何修改。 那么,你并不需要触发macros。
…而不是跟踪更改,请尝试使用Microsoft的电子表格比较(应用程序仅限于Excel 2013,Excel 2016,Office 365 Professional)比较两个工作簿。
…而不是跟踪更改,您可以logging对工作簿所做更改的历史logging(谁更改了什么时间以及何时更改) – XLTools版本控制 。
我使用两个取决于任务。