使用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和命令中断。