有没有办法通过Excel中的VBA触发“跟踪更改”?

时间:2012-01-11 10:56:45

标签: excel excel-vba word-vba vba

我想从VBA开始/停止Excel中的“跟踪更改”功能。

通过网络搜索我看到了一个名为TrackRevisions ActiveDocument对象的属性。据说在MS Word中写作ActiveDocument.TrackRevisions = True应该打开“跟踪更改”。

但在MS Excel中,此行会产生424 Object required运行时错误。尝试使用ThisWorkbook时会返回相同的错误。将其更改为ActiveSheet会导致438 Object doesn't support this property or method错误。

3 个答案:

答案 0 :(得分:1)

对于 shared workbook ,您可以使用这些链接中的VBA(方法为ActiveWorkbook.HighlightChangesOptions

不提供与Word 中可用的跟踪深度相同的跟踪深度,例如来自我帖子中的第一个链接,在Excel中:

  1. 更改跟踪与撤消和备份
  2. 不同
  3. 未跟踪某些类型的更改将跟踪您对单元格内容所做的更改,但不会跟踪其他更改(如格式更改)。
  4. 仅在特定时间间隔内保留更改历史记录
  5. 定期删除更改历史记录
  6. 如果那不是您追逐的内容,您可以使用特定的VBA跟踪

    1. 某些细胞,或
    2. 比较版本
    3. 但如果是这种情况,我们将需要您提供更多关于您追逐的信息。

答案 1 :(得分:1)

您可以使用以下代码。录制宏时,您将看到此代码。

    With ActiveWorkbook
    .HighlightChangesOptions When:=xlAllChanges
    .ListChangesOnNewSheet = False
    .HighlightChangesOnScreen = True
   End With

答案 2 :(得分:0)

问题实际上是你想要实现的目标。如果您想跟踪电子表格中的更改,我假设您有其他用户正在编辑工作簿,并且您希望记录更改内容的人员,以及稍后审核/批准任何修改。好吧,你实际上并不需要触发宏。

...而不是跟踪更改,尝试使用Microsoft的电子表格比较来比较两个工作簿(应用程序仅限于Excel 2013,Excel 2016,Office 365 Professional)。

...而不是跟踪更改,您可以记录对工作簿所做的更改的历史记录(更改内容和时间的人) - XLTools Version Control

我根据任务使用两者。