Excel VBA宏以跟踪单独工作表中的更改

时间:2009-04-06 12:10:09

标签: excel vba tracking

我正在尝试编写一个VBA宏来跟踪单独工作表中对工作簿的更改。

如果您手动执行此操作,则命令序列为工具>跟踪更改>突出显示更改,选择单独的工作表。您必须执行两次命令迭代,一次是激活内联跟踪,另一次是将跟踪移动到单独的工作表。

使用宏录制器,我得到了这段代码:

With ActiveWorkbook
    .Save
    .KeepChangeHistory = True
    .HighlightChangesOptions When:=xlAllChanges
    .ListChangesOnNewSheet = True
    .HighlightChangesOnScreen = False
    .Worksheets("History").Select
End With

当我运行它时,我收到错误 HighlightChangesOptions方法失败。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

HighlightChangesOptions方法仅在工作簿已共享时才有效。在UI中,启用HighlightChange将自动共享工作簿,但在VBA中则不然。

Application.DisplayAlerts = False
With ActiveWorkbook
    .SaveAs , , , , , , xlShared
    .KeepChangeHistory = True
    .HighlightChangesOptions When:=xlAllChanges
    .ListChangesOnNewSheet = True
    .HighlightChangesOnScreen = False
    .Worksheets("History").Select
End With

DisplayAlerts调用将阻止Excel警告您正在覆盖现有工作簿 - 本身。您可能想要评论该行,只是为了看看发生了什么。

请注意,此代码无法存在于共享工作簿中。共享工作簿后,代码将停止执​​行和错误。它必须存在于不同的工作簿或插件中。