Gestione degli errori VBA

Gestione degli errori di Excel VBA

In VBA quando lavoriamo con i codici possiamo incontrare molti diversi tipi di errore e come risolvere questi errori è noto come Gestione degli errori, ora possono esserci alcuni errori che vengono fatti nella sintassi che eccellono se stessi lo evidenziano ma quando c'è qualche errore che è fuori intervallo o qualcosa che non esiste Excel ci dà un pop-up per lo stesso, è importante sapere quale codice di errore è per quale errore al fine di identificare l'errore nel codice.

In Excel VBA durante l'esecuzione di qualsiasi set di codici otteniamo una sorta di errore. Alcuni di questi errori sono errori di sintassi, altri non sono eseguibili. L'errore di sintassi è quando fatto dall'utente è evidenziato in rosso da Excel stesso. Ma quando si verifica un altro tipo di errore di runtime, come lo gestiamo e come andiamo oltre questo è ciò che tratteremo in questo articolo.

A parte gli errori di sintassi, gli altri errori di runtime devono essere gestiti durante l'esecuzione di qualsiasi set di codici. Innanzitutto, lasciatemi fare un esempio di come si verifica l'altro errore di runtime. Dai un'occhiata al codice sottostante,

Questo è un codice di esempio quando eseguito restituirà ciò che è scritto nella funzione msgbox. Ma come possiamo vedere che nella seconda riga del codice c'è 4/0 che non è possibile in termini matematici, quindi restituirà un errore di runtime. Eseguiamo il codice sopra e vediamo l'errore che otterremo.

Questo è l'errore che otteniamo durante l'esecuzione del codice specificato. Ora come gestiamo questo errore viene eseguito da Gestione errori.

Esistono due metodi per la gestione degli errori che sono:

  1. In caso di errore Goto e
  2. In caso di errore, riprendi dopo.

Spiegazione

Come spiegato sopra, otteniamo molti tipi di errori in VBA, alcuni sono di sintassi e altri sono in fase di esecuzione. Gli errori di sintassi sono già evidenziati in colore rosso, ad esempio, fare riferimento all'immagine sottostante,

Mentre l'altro è errori di runtime. Fondamentalmente, excel farà le seguenti tre cose, o mostrerà un errore o ignorerà quell'errore o mostrerà un certo insieme di istruzioni. Per eseguire tali attività dobbiamo fornire istruzioni e questo si chiama Gestione degli errori.

Come gestire gli errori nel codice VBA?

Puoi scaricare questo modello Excel per la gestione degli errori VBA qui - Modello Excel per la gestione degli errori VBA

Esempio 1

Per il primo esempio, prendiamo il primo codice che abbiamo preso come dimostrazione. Nell'esempio precedente, abbiamo visto che il codice restituisce un errore di runtime alla seconda funzione msgbox.

Scrivi il seguente codice dopo aver aperto la sottofunzione,

Codice:

 Sub Sample () On Error Resume Next MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Ora, quando eseguiamo il codice sopra, vediamo che la riga di codice che ha l'errore non viene eseguita. Excel salta quella riga e riprende dalla riga successiva.

C'è un altro metodo per gestire l'errore è vba Goto Statement, forniamo a Excel una destinazione a cui andare quando trova un errore. Invece del precedente codice di gestione degli errori, abbiamo inserito, annotato il seguente codice,

Codice:

 Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Stiamo dando excel Az come destinazione a cui andare se trova un errore. Ora dopo il msgbox scrivi un altro codice come di seguito,

Codice:

 Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Fatto: Exit Sub 

Ora dobbiamo definire la destinazione az come cosa dovrebbe fare quando Excel trova un errore nel codice.

Codice:

 Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Fatto: Exit Sub az: MsgBox "Questo è un errore" & Err.Description End Sub 

Ora quando eseguiamo questo codice vediamo il risultato visualizzato.

Questo è il primo risultato della casella msg e poiché sappiamo che abbiamo un errore nella riga successiva del nostro codice, vediamo il risultato che darà Excel.

La descrizione err. Sopra nel codice ci aiuta a mostrare esattamente cosa si è verificato l'errore nel nostro codice.

Esempio n. 2

Abbiamo imparato a gestire gli errori nei nostri codici. Vediamo un altro esempio di come gestire gli errori. Considera il codice seguente come secondo esempio.

Abbiamo un errore in qualche modo simile dall'esempio 1. L'errore è nella riga d = i / b. Ora gestiremo questi errori utilizzando i due metodi spiegati sopra.

Scrivi il seguente codice dopo aver aperto la sottofunzione,

Codice:

 Sub Sample2 () On Error Resume Next bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub 

Ora quando eseguiamo il nostro codice possiamo vedere che ignora la seconda riga e visualizza solo il valore per C.

Il gestore degli errori di cui sopra era un curriculum successivo, ora useremo il Vai a dove diremo a Excel una destinazione a cui andare quando incontra un errore. Annotare il codice seguente,

Codice:

 Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Il bx è una destinazione data quando incontra un errore dopo che msgbox D ha scritto il seguente codice,

Codice:

 Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub 

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

 Sub Sample2() On Error GoTo bx Dim i As Integer , b As Integer , c As Integer , d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub bx: MsgBox " This is another Error " & Err.Description End Sub 

Now when we execute the code we can see that excel first gives us the value for C.

Now in another step, it will give us the prompt we provided it when it encounters an error.

This is how we handle the normal runtime errors in Excel VBA.

Things to Remember

There are a few things we need to remember about Error Handling:

  1. On Error Resume Next Ignores the error.
  2. On Error GoTo Gives excel a destination when it encounters an error.
  3. The description is used to show the exact error occurred to the user.