EXCEL表格中使用VBA错误捕捉OnErrorGoto方法

时间:2021-05-25

  VBA中错误捕捉的方法主要有两种

  第一种捕捉方法:

  1、语法:

  On Error GoTo Err_Handle '如果遇到错误就跳转到错误处理代码

  语句xxxxx

  Exit Sub/Function(如果没有这条语句,即使没有错误也会执行错误处理语句)

  Err_Handle: 语句 xxxxxx

  2、举例:

  Sub 查找数字() ’本段代码查找电子表格中有没有数字12

  On Error GoTo Err_Handle

  MsgBox Cells.Find(12).Address

  Exit Sub '如果没有这个退出过程语句,会一直执行下去

  Err_Handle:

  MsgBox ("不存在该数字")

  End Sub

  (1)、电子表中数据和代码

  (2)、查找12的结果:

  (3)、查找13的结果:

  第二种捕捉方法:

  1、语法:

  On Error Resume Next '如果遇到错误,不管错误,继续往下执行,但如果嵌套了其他错误处理语句,这些错误处理语句还是会按照自己规则运行

  语句xxxx

  On Error GoTo 0 ’结束错误捕捉

  2、举例代码:

  Sub 查找数字()

  Dim i As Integer

  On Error Resume Next '遇到错误向下执行

  MsgBox Cells.Find(13).Address

  On Error GoTo Err_Handle

  i = 10 / 0 ’会跳转到错误处理语句,而不会运行 Exit sub

  Exit Sub

  Err_Handle:

  MsgBox i

  On Error Resume Next

  End Sub

  3、结果说明和图例:

  excel表中没有13这个数字,但是不会报错也不会有弹窗

  在On Error Resume Next 和 Err_Handle之间代码,还是可以发挥错误捕获功能,因此可以出现下面弹窗:

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章