使用Esc键防止Excel VBA代码中断

时间:2016-02-08 09:37:08

标签: excel vba excel-vba

如何通过按Esc键阻止用户中断Excel VBA代码?

我在ThisWorkbook上尝试以下代码:

Private Sub Workbook_Open()
    On Error Resume Next
    Application.EnableCancelKey = xlDisabled
    Application.DataEntryMode = True

    Call WebPage
End Sub

但它无法正常工作,因为如果我在工作簿打开时按Esc,代码会中断:

enter image description here

因此,即使在工作簿打开之前,代码似乎也会中断。 有办法解决这个问题吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

似乎您的工作簿足够大,以至于打开和运行代码之间存在时间延迟,同时为用户留下了触及esc的机会。也许不是在工作簿开放时调用WebPage,而是让文件只是一个“登陆页面”'使用说明和单个按钮进行单击。这使用户可以控制执行宏,但也可以让你有时间在宏运行之前加载禁用转义键。

此外,如果您确信您的错误处理会将所有功能恢复正常,则可以使用此功能:

Application.InterActive = False

这样可以防止输入任何关键指令,包括esc&命令休息。