为什么VBA执行在代码中的随机点停止,并显示消息"代码执行已被中断",除非指定了以下内容:
Application.EnableCancelKey = xlDisabled
Run Code Online (Sandbox Code Playgroud)
代码中的停止类似于Ctrl + Break键,因此,禁用取消键(Ctrl + Break)可以避免执行中的停止.
但是,禁用取消键对我来说是一个坏主意,因为我的代码中的某些场景可能会导致无限循环(例如,如果OLE请求永远不会完成),使用Ctrl + Break的能力是无价的.
我不是设置太热衷EnableCancelKey
于xlErrorHandler
两种.如果我能理解代码中断的原因并避免它而不是改变取消键的行为会更好.
这很可能是编译时创建的p代码的损坏.有些人通过从"调试"菜单中选择"清除所有断点"获得了成功.坚如磐石的方法是导出所有模块,删除它们,然后重新导入它们.这种通过纯文本的往返行程迫使完整重建p代码.谷歌为Rob Bovey的Code Cleaner提供免费实用程序,可自动完成此过程.