使用Esc键防止Excel VBA代码中断
如何防止Excel VBA代码被用户按Esc
键中断?
我正在尝试在ThisWorkbook
上的以下代码:
Private Sub Workbook_Open() On Error Resume Next Application.EnableCancelKey = xlDisabled Application.DataEntryMode = True Call WebPage End Sub
但是它不起作用,因为如果在工作簿打开时按Esc键,代码就会中断:
所以在工作簿打开之前,代码似乎中断了。 有没有办法来解决这个问题?
感谢您的帮助!
看起来你的工作手册足够大,开放和运行代码之间有一段时间的延迟,同时给用户留下了一个机会。 也许不是在打开工作簿的时候调用WebPage,而是将文件简单地作为一个“login页面”,上面有指令和一个单击button。 这为用户提供了执行macros的控制权,但也让您有时间在macros运行之前加载禁用转义键。
另外,如果你有信心,你的error handling将所有的function恢复正常,你可以用它来代替:
Application.InterActive = False
这将防止input任何关键指令,包括esc和命令中断。