Excel VBAmacros来跟踪单独工作表中的更改

我正在尝试编写一个VBAmacros,以便在单独的工作表中跟踪对工作簿的更改。

如果您手动执行此操作,则命令序列为“工具”>“修订”>“突出显示更改”,并select“单独的工作表”。 您必须执行命令的两个迭代,一个用于激活内联跟踪,另一个用于将跟踪移至单独的工作表。

使用macroslogging器,我得到了这段代码:

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

当我运行这个,我得到错误HighlightChangesOptions方法失败 。 有什么build议么?

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警告您覆盖现有的工作簿本身。 你可能想把这一行注释掉,看看发生了什么。

请注意,此代码不能存在于共享工作簿中。 一旦您共享工作簿,代码停止执行和错误。 它必须生活在不同的工作簿或加载项中。