VBA On Error Riprendi Successivo - Esempi di VBA su errore Riprendi Successivo

Sommario:

Anonim

Excel VBA On Error Riprendi Successivo

La gestione degli errori è un meccanismo molto utile e significativo per i linguaggi di programmazione come il controllo o la prevenzione degli errori VBA che è un aspetto della gestione degli errori, il che significa prendere misure efficaci e significative all'interno di uno script VBA per evitare il verificarsi di un messaggio pop-up di errore. L'istruzione Excel VBA On Error Resume Next ignora la riga di codice che causa un errore e continua o indirizza l'esecuzione alla riga successiva seguendo la riga che ha causato l'errore.

NOTA: all'errore Riprendi la prossima istruzione non corregge gli errori di runtime, è un errore che ignora dove l'esecuzione del programma VB continuerà dalla riga che ha causato l'errore di runtime.

Fondamentalmente, su errore riprendi successivo viene utilizzato quando si desidera ignorare l'errore e continuare o riprendere l'esecuzione del codice nella cella successiva.

Tipi di errori in VBA

Di seguito sono riportati i diversi tipi di errori in VBA:

  1. Errore di sintassi o errore di analisi.
  2. Errore di compilazione o compilazione.
  3. Errore di runtime.
  4. Errore logico.

Gli errori sopra riportati possono essere corretti con l'aiuto del debug e delle dichiarazioni "On Error" in un codice. L'errore di runtime può essere prevenuto con l'aiuto di On Error Resume Next.

Errore di runtime VBA:

Prima della spiegazione di On Error Resume Next, dovresti essere consapevole dell'errore di runtime quando dichiarazioni matematiche impossibili o termini presenti in un'istruzione, quindi si verifica questo errore di runtime.

Esempi di Excel VBA su errore Riprendi Avanti

Di seguito sono riportati i diversi esempi di Ripristino errore su Avanti in Excel VBA:

Puoi scaricare questo VBA in caso di errore Riprendi il modello Excel successivo qui - VBA In caso di errore Riprendi il modello Excel successivo

VBA On Error Riprendi Successivo - Esempio n. 1

Qui, un errore verrà ignorato e l'esecuzione del codice andrà avanti. Nell'esempio citato di seguito, 6 non può essere diviso per zero, se lo si esegue senza immettere l'istruzione On Error Resume Next, si verifica l'errore di runtime riportato di seguito.

Codice:

 Sottotitoli RUNTIME_1 () MsgBox 6/0 End Sub 

Se On Error Resume Next è inserito nella parte superiore del codice dopo l'istruzione SUB, ignora l'errore di runtime e passa all'istruzione successiva, genera un output di 6/2 (finestra di messaggio popup con il risultato di essa).

Codice:

 Sottotitoli RUNTIME_2 () su errore Riprendi successivo MsgBox 6/0 MsgBox 6/2 End Sub 

VBA On Error Riprendi Successivo - Esempio n. 2

Posso usare On Error Resume Next ovunque nel codice dall'inizio alla fine. Nell'esempio che segue, devo fare un calcolo 3, ad es

9/3 =?

9/0 =?

9/2 =?

Nell'esempio sopra citato, è possibile osservare un secondo calcolo in cui qualsiasi numero non può essere diviso per zero, ovvero 9 non può essere diviso per zero nel secondo passaggio. Supponiamo che se si esegue la macro senza immettere l'istruzione On Error Resume Next, ora posso eseguire il codice passo dopo passo con l'aiuto del passaggio o del tasto F8 per capire come funziona.

Ora, eseguo il codice sopra, facendo clic su passaggio In opzione o tasto F8 frequentemente, passo dopo passo. Copio semplicemente il codice sopra e inizio a eseguirlo passo dopo passo, per il primo passo del messaggio appare la finestra di calcolo 3.

Codice:

 Sottotitoli RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Quando eseguo la seconda riga di codice, l'errore di runtime menzionato di seguito si verifica nel secondo passaggio di un codice, in cui qualsiasi numero non può essere diviso per zero, ovvero 9 non può essere diviso per zero nel secondo passaggio.

Codice:

 Sottotitoli RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Ora, anche se faccio clic sul debug, non può procedere oltre, dove mi porterà alla seconda riga di codice (viene evidenziata in giallo), dove devo fare la correzione. Quindi, qui, se fai ancora clic sull'opzione Step Into o sul tasto F8, il terzo calcolo in questo codice non verrà eseguito.

Per correggere o gestire questo errore di runtime, devo usare o eseguire l' istruzione OnError Resume Next sopra un secondo codice o all'inizio del codice sotto il sottostato. in modo che salti quella riga di codice e passi alla terza fase del codice e calcoli il valore.

Codice:

 Sottotitolo RUNTIME_30 () MsgBox 9/3 On Errore Riprendi successivo MsgBox 9/0 MsgBox 9/2 End Sub 

O

 Sottotitoli RUNTIME_31 () su errore Riprendi successivo MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Ora, ho aggiunto l'errore per riprendere la prossima istruzione al codice, in cui è possibile utilizzare uno dei codici precedenti, se lo si esegue passo dopo passo, si otterrà un popup a due messaggi, uno è il primo codice di output e il terzo codice calcolo. In caso di errore Riprendi Successivo ignorerà l'errore di runtime nel secondo codice e passerà al terzo codice.

VBA On Error Riprendi Successivo - Esempio n. 2

Ora vedremo la combinazione di On Error Riprendi Next con Error GoTo 0. Nel codice seguente, ignorerà gli errori fino a raggiungere l'istruzione On Error GoTo 0 . Dopo l'istruzione On Error GoTo 0, il codice torna indietro o passa al normale controllo degli errori e attiva l'errore previsto.

Codice:

 Sub onError_Go_to_0_with_Resume_next () In errore Riprendi Kill successivo "C: TempFile.exe" In errore Vai a intervallo 0 ("A1"). Valore = 100 / "PETER" End Sub 

Quando eseguo il codice sopra, mostrerà l'errore di divisione, ad esempio Tipo non corrispondente (il valore numerico non può essere diviso per il testo).

Ora puoi salvare la cartella di lavoro come "cartella di lavoro abilitata per le macro di Excel". Facendo clic su Salva come nell'angolo sinistro del foglio di lavoro.

quando apri di nuovo questo file Excel, puoi usare il tasto di scelta rapida sotto indicato, ad es

Il tasto funzione + Alt + F11 consente di accedere a tutto il codice macro creato della cartella di lavoro. Il tasto funzione + Alt + F8 consente di aprire una finestra di dialogo "Macro", che contiene tutti i nomi delle macro, in cui è possibile eseguire un codice macro specifico di propria scelta.

Cose da ricordare

  • L'errore di runtime verrà intercettato silenziosamente e memorizzato nell'oggetto Err globale
  • In caso di errore Riprendi Successivo di solito impedisce un'interruzione nell'esecuzione del codice.
  • Le proprietà dell'oggetto Error (Err Object) vengono cancellate automaticamente quando si utilizza Resume Next in una routine di gestione degli errori

Articoli consigliati

Questa è una guida a VBA in caso di errore Riprendi Successivo. Qui discutiamo diversi tipi di errore in VBA Excel insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Guida completa alle macro VBA
  2. VBA DateDiff (esempi con modello di Excel)
  3. Come utilizzare la ricerca degli obiettivi in ​​VBA?
  4. VBA Proteggi foglio con sintassi
  5. VBA Environ