为什么无法撤消 VBA 模块操作?即 Ctrl+Z'ed



在过去的几个月中,我一直在编写VBA脚本,并注意到,如果我编写了在Excel Workbook/Sheet上的模块,我将无法ctrl z这些动作。据我所知,这适用于模块执行的所有操作。

一个简单的例子是:

Sub test()
  Cells(1,1) = "Hello World"
End Sub

为什么不能"逆转"模块操作?即,通过CTRL Z撤消,或使用"撤消"箭头。

P.S。我认为这种行为也可能适用于任何MS应用程序中的任何模块操作,但是我很容易错。

不,它们不能逆转,但是您可以使用我的方法:

您可以在每个宏的开始时保存您的工作簿( ActiveWorkbook.Save ),然后如果要撤消:

Const pathToTheFile as String = "C:UsersVbaProject"
Sub Undo()
    wb = ActiveWorkbook.Name
    Workbooks(wb).Close savechanges:=False
    Workbooks.Open Filename:=pathToTheFile & wb
End Sub

您甚至可以将其绑定到快捷方式...

最新更新