为什么 VBA 模块动作不能反转?即,Ctrl+Z'ed
Why can't VBA module actions be reversed? i.e., Ctrl+Z'ed
在过去的几个月里,我一直在编写 VBA 脚本,并且注意到,如果我编写一个作用于 Excel workbook/sheet 的模块,我无法 Ctrl+Z 这些操作。据我所知,这适用于模块执行的所有操作。
一个简单的例子是:
Sub test()
Cells(1,1) = "Hello World"
End Sub
为什么模块操作不能是 "reversed"?即,通过 Ctrl+Z 或使用 'undo' 箭头撤消。
P.S。我认为这种行为也可能适用于任何 MS 应用程序中的任何模块操作,不过,我很容易出错。
不,它们无法逆转,但您可以使用我的方法:
您可以在每个宏的开头保存您的工作簿 (ActiveWorkbook.Save) 然后如果您想撤消:
Const pathToTheFile as String = "C:\Users\VbaProject\"
Sub Undo()
wb = ActiveWorkbook.Name
Workbooks(wb).Close savechanges:=False
Workbooks.Open Filename:=pathToTheFile & wb
End Sub
您甚至可以将其绑定到快捷方式...
在过去的几个月里,我一直在编写 VBA 脚本,并且注意到,如果我编写一个作用于 Excel workbook/sheet 的模块,我无法 Ctrl+Z 这些操作。据我所知,这适用于模块执行的所有操作。
一个简单的例子是:
Sub test()
Cells(1,1) = "Hello World"
End Sub
为什么模块操作不能是 "reversed"?即,通过 Ctrl+Z 或使用 'undo' 箭头撤消。
P.S。我认为这种行为也可能适用于任何 MS 应用程序中的任何模块操作,不过,我很容易出错。
不,它们无法逆转,但您可以使用我的方法:
您可以在每个宏的开头保存您的工作簿 (ActiveWorkbook.Save) 然后如果您想撤消:
Const pathToTheFile as String = "C:\Users\VbaProject\"
Sub Undo()
wb = ActiveWorkbook.Name
Workbooks(wb).Close savechanges:=False
Workbooks.Open Filename:=pathToTheFile & wb
End Sub
您甚至可以将其绑定到快捷方式...