我目前有一个支持宏的电子表格,可以执行各种功能,包括更新,创建和删除数百行。如果出于某种原因,其中一个函数变得混乱并删除了意图保留的信息 - 我想实现一个“撤消”按钮来恢复刚刚被宏改变的电子表格版本。
我认为它将如下所示:
Public InstanceOfWorksheet As Range
Sub Button_Click()
InstanceOfWorksheet = CurrentWorksheet.UsedRange 'Or something like this
'Macro functionality here
CurrentWorksheet.Update() 'Worksheet has now been updated
End Sub
Sub Button2_Click()
InstanceOfWorksheet = CurrentWorksheet.UsedRange 'Or something like this
'Second Macro functionality here
CurrentWorksheet.Update() 'Worksheet has now been updated
End Sub
Sub UndoLastMacro_Click()
CurrentWorksheet = InstanceOfWorksheet
End Sub
因此,在这种情况下,当您激活UndoLastMacro命令时,您将有效地“恢复”最后一个宏调用之前的工作表版本。
我的问题是,InstanceOfWorksheet
应该是什么变量类型,以及将InstanceOfWorksheet
的内容复制回当前工作表的最简单方法是什么?
提前致谢! :)
答案 0 :(得分:0)
我会在代码中做这样的事情
Sub Button_Click()
Dim TemporaryFileName as String
TemporaryFileName = "FileName" 'You can include a path here too like "C:\Wherever\FileName"
ThisWorkbook.SaveAs(TemporaryFileName)
... (code to be run
End Sub
Sub Restore_Button_Click()
Workbooks.Open(TemporaryFileName)
ThisWorkbook.Close False ' Won't save. Maybe set to true if you don't want to lose it just yet
End Sub
您可能还需要添加一个按钮以将其保存为最初调用的文件,以便" new"备份工作簿替换了您的宏损坏的工作簿。
希望这有帮助