2

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

如果您手动执行此操作,则命令序列为工具 > 跟踪更改 > 突出显示更改,并采用选项分离工作表。您必须对命令进行两次迭代,一次激活内联跟踪,第二次将跟踪移动到单独的工作表。

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

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

当我运行它时,我收到错误HighlightChangesOptions method failed。有什么建议么?

4

1 回答 1

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 警告您正在覆盖现有工作簿 - 本身。您可能想评论这条线只是为了看看发生了什么。

请注意,此代码不能存在于共享工作簿中。共享工作簿后,代码将停止执​​行并出现错误。它必须存在于不同的工作簿或加载项中。

于 2009-04-06T14:20:00.670 回答