On Error GoTo label/Line : 有错误的时候跳到标签或者行 On Error Resume Next : 跳过错误直接执行下一行 一般常见的设置是这样的, 前面设置一个On Error GoTo 标签, 后面标签里面含错误处理. 如下面例子:Sub test() "有错误跳到标签errorhandle" On Error GoTo errorhandle: ... '你的代码 "代码执行到...
网上大都关于VBA 错误处理的文章都建议不用On Error Resume Next, 将用它之视为程序员懒惰的表现之一。个人认为如果紧跟On Error Resume Next 的代码比较简单,而且功用单一的话。On Error Resume Next 未尝不是一个对On Error GoTo Label方便的补充。 大家是不是常常想VBA为什么没有像函数一样的Iferror syntax呢?
在VBA中可以使用On Error语句和Resume语句处理异常。 On Error语句 这个语句是VBA异常处理的核心语句,它指明了当异常发生时程序应该做的动作。它有下面几种形式: OnErrorGoto0 OnErrorResumeNext OnErrorGoto<label>: 第一种形式,On Error Goto 0, 是VBA的默认模式。使用它的时候,一旦遇到运行时的错误,它就显示...
1. On Error Resume Next:在出现错误时,继续执行后续代码而不中断程序运行。 2. On Error GoTo 0:恢复默认的错误处理方式,即在出现错误时立即停止程序执行。 3. On Error GoTo Label:在出现错误时跳转到指定的标签处处理错误。 接下来,我们可以通过VBA代码示例来演示如何使用On Error语句进行错误处理。假设我们需...
VBA默认的错误处理是On Error GoTo 0,即在出现问题时显示错误,用户可以通过点击OK退出或进入VBE调试。这种方式对用户不友好,对编码者信息不足。因此,我们需要自定义错误处理,常用的方法有两种:On Error GoTo label/Line和On Error Resume Next。通常的做法是在代码前设置On Error GoTo 标签,然后在...
Sub GotoLabel() Dim x As Long Dim y As Long On Error GoTo errH x = 6 y = 6 / 0 x = 7 Done: Exit Sub errH: MsgBox "发生了错误: "& Err.Description EndSub 运行代码的结果如下图5所示。 图5 运行上述VBA代码,代码执行到以...
On Error Goto [label]:遇到错误时跳转到指定的[label]处继续执行。 Err对象:通过Err对象可以获取最近一次发生的错误信息,如错误编号、错误描述等。 取消处理: 用户取消:可以在宏中加入条件判断,当用户执行某个操作时取消宏的执行。例如,使用Application.InputBox函数获取用户输入,若输入为空则取消宏的执行。 强制取...
Sub GotoLabel() Dim x As Long Dim y As Long On Error GoTo errH x = 6 y = 6 / 0 x = 7 Done: Exit Sub errH: MsgBox "发生了错误: "& Err.Description EndSub 运行代码的结果如下图5所示。 图5 运行上述VBA代码,代码执行到以0作为除数这一行时,发生错误,代码跳至On Error GoTo 语句指...
On Error的用法 1.一般用法 On Error GoTo Label 各种代码 exit sub Label: msgbox Err.Description 其他错误处理 2.对于某段代码单独处理 On Error Resume Next 需要监视的代码 If Err.Number <> 0 Then MsgBox Err.Description End If On Error GoTo 0 ...
VBA中毛病捕捉的方法主要有两类 第一种捕捉方法: 1、语法: On Error GoTo Err_Handle'如果遇到毛病就跳转到毛病处理代码 语句xxxxx Exit Sub/Function(如果没有这条语句,即便没有毛病也会履行毛病处理语句) Err_Handle: 语句 xxxxxx 2、举例: Sub 查找数字() ’本段代码查找电子表格中有无数字12 ...