有没有办法通过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中:

  1. 更改跟踪与撤消和备份不同
  2. 某些types的更改未被跟踪您对单元格内容所做的更改将被跟踪,但其他更改(例如格式更改)不会被跟踪。
  3. 更改历史logging仅保留特定的时间间隔
  4. 更改历史logging会定期删除

如果这不是你所追求的,你可能可以使用特定的VBA进行跟踪

  1. 某些细胞,或
  2. 比较版本

但是如果是这样的话,我们将需要更多的信息来告诉你正在追逐什么。

您可以使用下面的代码。 录制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版本控制 。

我使用两个取决于任务。