VBA如何屏蔽运行中的代码免受干扰而终止?
发布网友
发布时间:2023-07-28 07:43
我来回答
共2个回答
热心网友
时间:2024-12-06 01:54
Application.EnableCancelKey = False
控制 Microsoft Excel 如何处理 Ctrl+Break(或 Esc、Command+Period)用户中断以用于运行过程。XlEnableCancelKey 类型,可读写。
XlEnableCancelKey 可为以下 XlEnableCancelKey 常量之一。
xlDisabled 完全禁用“取消”键捕获功能。
xlErrorHandler 将中断作为错误信号传递给运行程序,由 On Error GoTo
语句设置的错误处理程序捕获。可捕获的错误代码为 18。
xlInterrupt 中断当前运行程序,用户可进行调试或结束程序的运行。
使用该属性应小心。如果使用 xlDisabled,则无法中断失控循环或者其他的不能自结束的代码;此外,如果使用
xlErrorHandler,但是错误处理程序始终使用 Resume 语句返回,同样无法终止失控代码。
只要 Microsoft Excel 返回空闲状态并且没有程序处于运行状态,EnableCancelKey 属性都会重置为
xlInterrupt。若要在程序运行中捕获或者禁用取消过程,则每次在程序被调用时必须明确更改 EnableCancelKey
属性。
热心网友
时间:2024-12-06 01:55
百度或看帮助中的 ON error 语句
On Error 语句
启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。
语法
On Error GoTo line
On Error Resume Next
On Error GoTo 0
On Error 语句的语法可以具有以下任何一种形式:
语句
描述
On Error GoTo line
启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line
参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的
line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误。
On Error Resume Next
说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error
GoTo。
On Error GoTo 0
禁止当前过程中任何已启动的错误处理程序。