我正在尝试编写一个VBA宏来跟踪单独工作表中对工作簿的更改。
如果您手动执行此操作,则命令序列为工具>跟踪更改>突出显示更改,选择单独的工作表。您必须执行两次命令迭代,一次是激活内联跟踪,另一次是将跟踪移动到单独的工作表。
使用宏录制器,我得到了这段代码:
With ActiveWorkbook
.Save
.KeepChangeHistory = True
.HighlightChangesOptions When:=xlAllChanges
.ListChangesOnNewSheet = True
.HighlightChangesOnScreen = False
.Worksheets("History").Select
End With
当我运行它时,我收到错误 HighlightChangesOptions方法失败。有什么建议吗?
答案 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警告您正在覆盖现有工作簿 - 本身。您可能想要评论该行,只是为了看看发生了什么。
请注意,此代码无法存在于共享工作簿中。共享工作簿后,代码将停止执行和错误。它必须存在于不同的工作簿或插件中。