控制 Microsoft Excel 将 Ctrl+Break(或 Esc、Command+Period)用户中断用于运行程序的处理方式。XlEnableCancelKey 类型,可读写。
XlEnableCancelKey 可为以下 XlEnableCancelKey 常量之一。 |
xlDisabled 完全禁用“取消”键捕获功能。 |
xlErrorHandler 将中断作为错误信号传递给运行程序,由 On Error GoTo 语句设置的错误处理程序捕获。可捕获的错误代码为 18。 |
xlInterrupt 中断当前运行程序,用户可进行调试或结束程序的运行。 |
expression.EnableCancelKey
expression 必需。该表达式返回“应用于”列表中的对象之一。
使用该属性应小心。如果使用 xlDisabled,则没有办法中断失控循环或者其他的不能自结束的代码;另外,虽然该属性设为 xlErrorHandler,但是错误处理程序总使用 Resume 语句返回,同样没有办法终止失控程序。
只要 Microsoft Excel 返回空闲状态并且没有程序处于运行状态,EnableCancelKey 属性都会重置为 xlInterrupt。若要在程序运行中捕获或者禁用取消过程,则每次在程序被调用时必须明确更改 EnableCancelKey 属性。
本示例显示可使用 EnableCancelKey 属性设置自定义取消处理程序的方法。
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
MsgBox "This may take a long time: press ESC to cancel"
For x = 1 To 1000000 ' Do something 1,000,000 times (long!)
' do something here
Next x
handleCancel:
If Err = 18 Then
MsgBox "You cancelled"
End If