On Error GoTo ... Resume 语句

发生错误时启用错误处理例程或恢复程序执行。

语法:

On {[Local] Error GoTo Labelname  GoTo 0  Resume Next}

参数:

GoTo Labelname:当发生错误时,在行 "Labelname" 的开始部分启用错误处理例程。

Resume Next:发生错误时,程序继续执行出错语句后面的语句。

GoTo 0: 在当前过程中禁用错误处理程序。

Local: "On error" 作用于全局范围,直到被另一个 "On error" 声明取缔之前一直有效。"On Local error" 局限于调用它的例程。本地错误处理覆盖任何之前的全局设置。当调用的例程退出时,自动取消本地错误处理,并且恢复任何之前的全局设置。

On Error GoTo 语句用于处理发生在宏中的错误。

示例:

Sub ExampleReset

On Error GoTo ErrorHandler

Dim iNumber As Integer

Dim iCount As Integer

Dim sLine As String

Dim aFile As String

    aFile = "c:\data.txt"

    iNumber = Freefile

    Open aFile For Output As #iNumber

    Print #iNumber, "This is a line of text"

    Close #iNumber

    iNumber = Freefile

    Open aFile For Input As iNumber

    For iCount = 1 To 5

        Line Input #iNumber, sLine

        If sLine <>"" Then

            Rem

        End If

    Next iCount

    Close #iNumber

    Exit Sub

ErrorHandler:

    Reset

    MsgBox "All files will be closed",0,"Error"

End Sub