excelperfect
标签:VBA
当执行VBA过程代码后,如果想反悔,像在Excel中操作一样,使用Excel的撤销功能或者按Ctrl+Z来撤销VBA代码对工作表的改变,不会起作用。
这里,在jkp-ads.com中找到了代码,可以用来撤销VBA对工作表的操作。代码中,关键是两个类模块,创建了一个通用撤消处理程序,可以将其导入到任何项目。
类模块:clsUndoObject
这个类将“保留”必须更改的对象(因此可能会改回)。此外,对对象所做的任何更改都是在这个类中完成的。最后,这个类记录更改后的属性以前的值。
类模块:clsExecAndUndo
这个类将保存clsUndoObject类的所有实例的集合(简单地说:它将保存所有已更改的对象的列表,并知道如何撤消这些更改)。这个类将确保对对象进行更改(包括更改和撤消更改)。
这里的程序可以撤消的操作通常仅限于对对象属性的更改,无法撤消插入或删除工作表、刷新查询表、更新数据透视表等操作。
有兴趣的朋友可以查看:
https://jkp-ads.com/articles/undowithvba00.asp
研阅原文并下载示例工作簿。
或者,在完美Excel微信公众号中发送消息:
撤销代码操作
获取原示例工作簿的下载链接。
或者,直接到知识星球App完美Excel社群中下载原示例工作簿。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。