在上面的示例中,如果x = 1 / 0触发错误,程序会跳转到ErrorHandler标签处执行。在错误处理例程中,我们显示了一个错误消息框,并使用On Error GoTo 0重置了错误处理器。这样,如果在ErrorHandler之后的代码中再次发生错误,程序不会捕获到这个错误,而是直接停止执行。 总结: 合理处理VBA中的错误非常重要,可以避免程序...
On Error Goto ErrorHandler命令告诉 VBA:如果发生错误,跳转到ErrorHandler代码段。 如果程序正常运行,不会跳转到ErrorHandler,而是按顺序执行代码。 一旦遇到错误,VBA 会立即跳转到ErrorHandler代码段,而不会执行错误语句之后的代码。 在ErrorHandler代码段,我们可以使用Err对象来获取错误信息,并采取适当的处理措施。 通常...
而下面的代码由于及时使用了On Error Goto 0语句,因此,在第2次错误发生时(即第2个x/y),系统将显示内置错误消息,而不是运行MyErr标签处的代码。 1SubErrTest1()23DimxAsInteger, yAsInteger, zAsSingle45x =167y =089OnErrorGoToMyErr1011MsgBoxx /y1213OnErrorGoTo01415MsgBoxx /y1617MsgBox"继续执行错误代码...
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 语句指定的标签errH处。 On Error GoTo -1 这个语句用于清...
下面的代码虽然未使用 On Error Goto 0 语句,但是在第 2 个错误发生前,添加了第2 个错误标签,因此,两个错误处理程序分别处理各自的错误。 Sub ErrTest2() Dim x As Integer, y As Integer, z As Single x = 1 y = 0 On Error GoTo MyErr1 MsgBox x / y On Error GoTo MyErr2 MsgBox x / y...
On Error GoTo errH '忽略接下来语句行发生的错误 On Error Resume Next x = 1 / 0 '接下来语句行发生错误,显示错误消息 On Error GoTo 0 x = 1 / 0 Done: Exit Sub errH: Debug.Print Err.Description End Sub 运行上述代码后的结...
首先,当可能产生错误的代码行前添加On Error Goto ErrHandler,设置自定义错误标签。遇到错误时,如果没有On Error Goto 0,程序会直接跳转到错误标签,显示调试和结束选项。在宏或程序尾部, Exit Sub用于在无错误时终止错误处理,避免错误程序的执行。错误标签(如"MyErr:”)用于存放错误处理代码,可...
④ On Error GoTo 0 一一般的VBA错误处理语句 为了说明上面的几个语句,我们简单的写几行代码,如下:Sub mynz_37()On Error GoTo ErrHandler k = 1 / 0 ExitProcedure:On Error Resume Next k = 1 / 0 + 1 MsgBox k Exit Sub ErrHandler:MsgBox "错误代码: " & Err.Number & vbCrLf & _"错误...
第一种捕捉方法:1、语法:On Error GoTo Err_Handle '如果遇到错误就跳转到错误处理代码 语句xxxxx Exit Sub/Function(如果没有这条语句,即使没有错误也会执行错误处理语句)Err_Handle: 语句 xxxxxx 2、举例:Sub 查找数字() ’本段代码查找电子表格中有没有数字12 On Error GoTo Err_Handle...
On Error GoTo 0 End Sub 在上述示例中,当程序执行到"x = 10 / 0"这行代码时,由于使用了On Error Resume Next语句,程序会忽略除零错误并继续执行下一行代码。最后,使用On Error GoTo 0关闭错误处理。 4.使用Err对象获取错误信息 除了使用On Error语句处理错误外,还可以使用Err对象获取更详细的错误信息。Err...