此时单击“继续”按钮将继续执行代码,单击“结束”按钮结束过程,单击“调试”按钮进入中断模式,这显然有时候不是用户所希望出现的,能否可以对上述的键值进行屏蔽呢?答案当然是肯定的。此时需要使用Application对象的EnableCancelKey属性来进行控制,应用于Application对象的EnableCancelKey属性控制将用户中断用于运行程序的处理,语法如下:
expression.EnableCancelKey
参数是expression必须的,是Application对象。
EnableCancelKey属性值为下面常量之一。
① xlDisabled 0 完全禁用“取消”键捕获功能
② xlErrorHandler 2 将中断作为错误信号传递给运行程序,由 On Error GoTo 语句设置的错误处理程序捕获。可捕获的错误代码为 18
③ xlInterrupt 1 中断当前运行程序,用户可进行调试或结束程序的运行
如果我们将上述的EnableCancelKey属性值设置为xlDisabled或者0,那么就不能退出代码的运行了。看下面的代码实测:
Sub MyNzEnablEsc()
Dim i As Integer
Application.EnableCancelKey = xlDisabled
For i = 1 To 3000
Sheets("Sheet11").Cells(i, 1).Select
Sheets("Sheet11").Cells(i, 1) = i
Next
Application.EnableCancelKey = xlInterrupt
Sheets("Sheet11").Cells(1, 1).Select
End Sub
代码解析:
MyNzEnablEsc过程在代码运行期间禁用“取消”键的捕获功能。
只要Microsoft Excel返回空闲状态并且没有程序处于运行状态,EnableCancelKey属性都会重置为xlInterrupt。若要在程序运行中捕获或者禁用取消过程,则每次在程序被调用时必须明确更改EnableCancelKey属性。
代码截图:
运行之中是不允许退出的。如下图,呵呵这个截图没有什么意义了。
今日内容回向:
1 如何能使代码不能中断运行?
2 Application.EnableCancelKey 的意义是什么?