On Error GoTo ... Resume Statement
Habilita una rutina de gestió d'errors després que es produeixi un error, o continua l'execució del programa.
Sintaxi:
On {[Local] Error GoTo Labelname | GoTo 0 | Resume Next}
Paràmetres:
GoTo Labelname: Si es produeix un error, habilita la rutina de gestió d'error que s'inicia a la línia "Labelname".
Resume Next: Si es produeix un error, l'execució del programa continua amb l'expressió que segueix l'expressió en què s'ha produït l'error.
GoTo 0: Inhabilita el gestor d'errors al procediment actual.
Local: "On Error" té un àmbit global i roman actiu fins que una altra expressió "On Error" el cancel·li. "On Local Error" és local a la rutina que l'invoca. La gestió d'errors locals sobreescriu tots els paràmetres globals definits anteriorment. Quan la rutina que l'invoca surt, la gestió d'errors locals es cancel·la automàticament i es restauren tots els paràmetres globals anteriors.
L'expressió On Error GoTo s'utilitza per reaccionar als errors que es produeixen en una macro.
Exemple:
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, "Això és una línia de 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 "Es tancaran tots els fitxers",0,"Error"
End Sub