在 Excel 中执行宏之后,没有按钮可以撤销它,除非您关闭书并选择不保存它。
有没有简单易行的方法可以撤销它?
答案1
简而言之,您无法撤消(我猜这就是您所说的撤销)宏的操作。编程语言内部做出的决定对于 Excel 来说可能很难撤消,因此启动宏会导致一个全面的“无法撤消”状态。
详细回答是,如果您预计需要撤消,您的代码应该通过在执行之前存储数据的先前状态来满足该请求。这是一个非常宽泛的假设,即您正在使用 VBA 处理数据;直接创建和操作文件可能会更加棘手,具体取决于执行的内容。
John Walkenbach 给出了一个存储数据以提供未来撤销功能的很好的例子:
计算机用户已经习惯了“撤消”操作的功能。几乎您在 Excel 中执行的所有操作都可以撤消。如果您使用 VBA 编程,您可能想知道是否可以撤消子程序的效果。答案是可以的。合格的答案是,这并不总是那么容易。
John Walkenbach,Spreadsheetpage.com
我认为他的开场白有点误导:对于非编码用户来说,答案是“不,你不能撤消宏”。
答案2
是的,您可以撤消宏的所有操作。下面是分配给“执行 DO”按钮的宏。
Sub do_while()
Dim num As Integer
num = 1
Do While num <= 12
Cells(num, 1) = num
num = num + 1
Loop
End Sub
The code below is assigned to an UNDO button.It uses ClearContents.
Dim num As Integer
num = 1
Do While num <= 12
Cells(num, 1).ClearContents
num = num + 1
Loop
End Sub
使用清晰的内容。