首页 > 解决方案 > 你如何在指定的行中使用 ErrorHandler

问题描述

ErrorHandler我的代码开头有一个( On Error GoTo ErrorHandler),它工作正常。但现在我想添加几个处理程序(ErrorHandler1ErrorHandler2),每个处理程序检查代码中的特定行。有人有想法吗?

标签: vba

解决方案


您可以覆盖当前处理程序或在单个处理程序中使用选择案例。

有两个处理程序:

Sub test()
    Dim x As Long
    x = 0
    
    On Error GoTo errorhandler
    Debug.Print 5 / x
    On Error GoTo errorhandler2
    Debug.Print 5 / x
    Exit Sub
errorhandler:
    Debug.Print Err.Number
    Resume Next
    
errorhandler2:
    Debug.Print Err.Number, "handler2"
    Resume Next
End Sub

使用 select case 根据收到的错误处理错误:

Sub test2()
    Dim x As Long
    x = 0
    
    On Error GoTo errorhandler
    Debug.Print 5 / x
    
    Rows(x).EntireRow.Delete
    Exit Sub
errorhandler:
    Select Case Err.Number
    Case 11
        Debug.Print Err.Number
        Resume Next
    Case 1004
        Debug.Print Err.Number
        Resume Next
    End Select
End Sub

推荐阅读