为什么不能颠倒VBA模块操作? 即Ctrl + Z'ed

在过去的几个月中,我一直在编写VBA脚本,并且注意到,如果我编写一个作用于Excel工作簿/表单的模块,我无法按Ctrl + Z这些操作。 从我注意到的情况来看,这适用于模块执行的任何操作。

一个简单的例子是:

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

为什么模块操作不能“倒转”? 即通过Ctrl + Z撤消,或者通过使用“撤消”箭头。

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

不,他们不能被扭转,但你可以使用我的方法:

你可以保存你的工作簿( ActiveWorkbook.Save )在每个macros的开始,然后如果你想撤消:

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

你甚至可以将它绑定到一个快捷方式…