Vba: come uscire da sub in caso di errore
È possibile utilizzare l’istruzione Exit Sub in VBA per uscire da una procedura secondaria quando si verifica un errore.
Ecco un modo comune per utilizzare questa affermazione nella pratica:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
Questa particolare macro tenta di dividere ciascun valore nell’intervallo A1:A10 per il valore corrispondente nell’intervallo B1:B10 .
Se si verifica un errore (ad esempio, stiamo provando a dividere per zero), l’istruzione On Error GoTo dice a VBA di accedere a ErrorMessage , che dice di produrre una finestra di messaggio che informa l’utente che si è verificato un errore e di terminare la sottoprocedura utilizzando Exist Sub . dichiarazione.dichiarazione.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: come esistere un sub in caso di errore in VBA
Supponiamo di avere il seguente elenco di valori nelle colonne A e B:
Supponiamo ora di creare la seguente macro per dividere ciascun valore nella colonna A per il valore corrispondente nella colonna B e visualizzare i risultati nella colonna C:
Sub DivideValues()
Dim i As Integer
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
End Sub
Quando eseguiamo questa macro, riceviamo il seguente errore:
Riceviamo questo errore perché nella quarta riga del foglio Excel abbiamo provato a dividere per zero.
Se vogliamo semplicemente uscire dalla sottoprocedura quando si verifica questo errore, possiamo utilizzare l’istruzione Exit Sub come segue:
Sub DivideValues()
Dim i As Integer
On Error GoTo ErrorMessage
For i = 1 To 10
Range(" C " & i) = Range(" A " & i) / Range(" B " & i)
Next i
Exit Sub
Error Message:
MsgBox “ An Error Occurred ”
Exit Sub
End Sub
Quando eseguiamo questa macro, la sottoprocedura risolve tutti i possibili problemi di divisione prima di incontrare un errore, quindi appare una finestra di messaggio che ci informa che si è verificato un errore e VBA esiste semplicemente nella sottoprocedura:
Nota : qui è possibile trovare la documentazione completa dell’istruzione Exit in VBA.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
Come creare cartelle utilizzando VBA
Come eliminare cartelle utilizzando VBA
Come eliminare file utilizzando VBA