In VBA, puoi programmare il tuo codice per uscire da un sottotitolo ogni volta che si verifica un errore. Per farlo, usa In caso di errore Vai a e Esci Sotto.
On Error Goto dice a VBA che quando si verifica un errore "Vai a" una sezione specifica del tuo codice. Ex:
1 | In caso di errore Vai a ErrorHandler |
Da quella sezione puoi quindi dire a VBA di Exit Sub per uscire dalla procedura secondaria:
12 | ErrorHandler:Esci Sotto |
Continua a leggere, per vedere queste righe di codice in azione…
Esci da un sottotitolo in caso di errore in VBA
In questo esempio, genereremo un errore dividendo per zero:
1 | io = 5 / 0 |
Vedi il codice completo di seguito. Quando VBA legge l'errore, "vai alla sezione ErrorHandler del codice ed esce:
123456789101112131415 | Sub TestError ()Dim i As IntegerIn caso di errore Vai a ErrorHandlerio = 5 / 0'Fai qualcosa con meMsgBox ioEsci SottoErrorHandler:MsgBox "Se errore, quindi esci da Sub"Esci SottoFine sottotitolo |
Per specificare la gestione degli errori, devi prima dichiarare In caso di errore Vai a dichiarazione. Dovrebbe essere dichiarato all'inizio di un Sub:
1 | In caso di errore Vai a ErrorHandler |
Successivamente è necessario dichiarare il codice di gestione degli errori. Di solito è alla fine del codice:
123 | ErrorHandler:MsgBox "Se errore, quindi esci da Sub"Esci Sotto |
Aggiungiamo "Exit Sub" sopra ErrorHandler perché vogliamo eseguire il codice ErrorHandler solo se c'è un errore.
12345 | Esci SottoErrorHandler:MsgBox "Se errore, quindi esci da Sub"Esci SottoFine sottotitolo |
Se esegui il Sub, si verificherà un errore a causa della divisione per zero. In quel momento verrà eseguito il codice di gestione degli errori. Viene visualizzata la finestra di messaggio e si esce dal Sub.
Immagine 1. VBA On Error Exit Sub
Se vuoi imparare come terminare l'esecuzione del codice in VBA, clicca su questo link: VBA End
Se vuoi imparare come uscire da un sottotitolo o da una funzione, fai clic su questo link: VBA Esci da un sottotitolo o da una funzione