是否有一些 VBA 最佳实践来使用诸如“结束前”子例程之类的东西?
我在我的宏启动时更改 Excel 的默认配置,并且在我的宏到达其“结束子”行之前我将配置重置为其标准。 但是,如果发生错误怎么办?我是否应该在所有 sub 中定义“On Error”处理以将配置重置为标准属性?
例如,我正在更改配置,例如:
ScreenUpdating
DisplayStatusBar
Calculation
DisplayAlerts
最佳答案
我很确定在退出函数或子例程之前,没有这样的机制可以无条件地调用。您可能有错误处理程序(但这些是有条件地执行的;请参阅 ckuhn203 的评论作为示例)。
但是,类模块的实例(即对象)有这样的机制。当一个对象被销毁时(当它不再被任何变量/存储引用时会发生这种情况),它的 Class_Terminate
子例程被称为 no-matter-what。如果您可以将您的任务包装在这样一个您创建它后立即丢弃的对象中,您可以override覆盖这个子例程来进行清理。
关于vba - 在宏结束之前运行 Sub,如 Finally block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913601/