【问题标题】:Is there a way to trigger "track changes" through VBA in Excel?有没有办法通过 Excel 中的 VBA 触发“跟踪更改”?
【发布时间】:2016-04-13 01:56:01
【问题描述】:

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

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

但在 MS Excel 中,这一行给出了 424 Object required 运行时错误。尝试使用ThisWorkbook 时返回相同的错误。将其更改为 ActiveSheet 会带来 438 Object doesn't support this property or method 错误。

【问题讨论】:

    标签: excel ms-word vba


    【解决方案1】:

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

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

    1. 更改跟踪不同于撤消和备份
    2. 不跟踪某些类型的更改 跟踪对单元格内容所做的更改,但不跟踪其他更改,例如格式更改。
    3. 更改历史记录仅保留特定时间间隔
    4. 更改历史记录会定期删除

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

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

    但如果是这种情况,我们将需要您提供更多关于您所追求的信息。

    【讨论】:

    • HighlightChangesOptions 似乎仅在启用更改跟踪时才有效。但是如何通过 VBA 开启变更跟踪呢?
    【解决方案2】:

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

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

    【讨论】:

    【解决方案3】:

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

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

    ...您可以记录对工作簿所做的更改历史记录(谁更改了什么以及何时更改)-XLTools Version Control

    我根据任务使用两者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      相关资源
      最近更新 更多