VBA in errore

VBA On Error è un metodo semplice per gestire eccezioni impreviste nelle macro di Excel. È noto che non possiamo scrivere codice senza errori. A volte scrivere un codice grande può darci l'errore anche al momento della compilazione. Per evitare questo tipo di situazione, aggiungiamo un messaggio di errore che invece di darci la risposta corretta o il codice di errore ci mostrerà il messaggio con il codice di errore. Sembrerebbe che abbiamo ottenuto l'output del nostro calcolo, ma è il codice di errore che verrà stampato.

Come utilizzare Excel VBA sulla dichiarazione di errore in Excel?

Esistono 3 modi di errore in VBA. Comprendiamo diversi modi con alcuni esempi.

Esempio 1

Il primo tipo di errore è Errore di compilazione del codice che si verifica quando un codice non è dichiarato o è impossibile variabili. Per capire di più useremo una semplice espressione matematica della divisione. Per questo vai al menu Inserisci di VBA e seleziona Modulo come mostrato di seguito.

Ora apri la sottocategoria e aggiungi qualsiasi nome. Poiché stiamo usando On Error, abbiamo chiamato come uguale.

 Sub OnError () End Sub 

Ora definisci 2 o 3 numeri interi. Qui abbiamo preso X e Y come numeri interi.

 Sub OnError () Dim X come intero, Y come intero, Z come intero Sottotitolo 

Ora, come discusso sopra, calcoleremo l'espressione matematica della divisione. Per X inseriremo un carattere in Numeratore e lo divideremo 0. E Y sarà 20/2 che è un numero completo.

 Sub OnError () Dim X come intero, Y come intero X = Test / 0 Y = 20/2 Fine end 

Ora esegui il codice usando il tasto F5 o facendo clic sul pulsante di riproduzione come mostrato di seguito. Verrà visualizzato l'errore di runtime 6, che mostra l'errore di testo su numero.

Ora per annullare questo errore, aggiungeremo una riga su Errore Riprendi Avanti prima di scrivere il codice matematico. Salterà il codice di errore ma non saremo in grado di vedere l'esito del secondo codice matematico. Questo nasconde il messaggio di errore solo se varie linee di codice come mostrato di seguito. Ora prova anche a eseguire il codice.

 Sub OnError () Dim X come numero intero, Y come numero intero su errore Riprendi X successivo = Test / 0 Y = 20/2 MsgBox X MsgBox Y End Sub 

Ora per annullare questo errore, aggiungeremo una riga su Errore Riprendi Avanti prima di scrivere il codice matematico. Salterà il codice di errore ma non saremo in grado di vedere l'esito del secondo codice matematico. Questo nasconde il messaggio di errore solo se varie linee di codice come mostrato di seguito. Ora prova anche a eseguire il codice.

Esempio n. 2

In questo esempio, considereremo quella divisione matematica che dà un risultato infinito ma nella codifica produrrà # DIV / 0. Per dimostrarlo, prenderemo in considerazione un altro numero intero Z insieme a X e Y nella sottocategoria, come mostrato di seguito.

 Sub OnError () Dim X come intero, Y come intero, Z come intero Sottotitolo 

Ora inquadra tutti i numeri interi X, Y e Z con un'espressione matematica di divisione e per stamparlo usa la funzione MsgBox in VBA del risultato di ogni numero intero.

Di seguito per Integer X abbiamo diviso 10 per 0, 20 per 2 e 30 per 4.

 Sub OnError () Dim X come intero, Y come intero, Z come intero X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ora esegui il codice usando il tasto F5 o manualmente come mostrato di seguito.

Come possiamo vedere nello screenshot sopra Errore di runtime 11, il che significa che l'errore è correlato al numero. Ora per ovviare a questo aggiungi una riga On Error Resume Next prima dell'espressione matematica come mostrato di seguito.

 Sub OnError () Dim X come intero, Y come intero, Z come intero su errore Riprendi successivo X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ora se eseguiamo il codice otterremo zero per il primo numero intero X e per Y e Z otterremo le rispettive risposte di divisione come mostrato di seguito.

Esempio n. 3

Il secondo tipo di errore viene visualizzato quando si immette una voce di dati errata nel codice. Per questo, prenderemo in considerazione 3 numeri interi X, Y e Z aprendo la sottocategoria in VBA come mostrato di seguito.

 Sub OnError () Dim X come intero, Y come intero, Z come intero Sottotitolo 

Ora consideriamo anche la stessa divisione matematica che abbiamo visto nell'esempio sopra.

 Sub OnError () Dim X come intero, Y come intero, Z come intero X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Se eseguiamo il codice avremo lo stesso messaggio di errore dell'errore di run-time 11.

Ora per annullare questo errore, usa il testo On Error GoTo con la parola ““ Risultato per saltare il messaggio di errore e ottenere l'output che funziona correttamente come mostrato di seguito.

 Sub OnError () Dim X come intero, Y come intero, Z come intero su errore Vai a ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ora esegui di nuovo il codice. Otterremo lo stesso risultato dell'esempio precedente.

In caso di errore, GoTo ZResult ci aiuta a saltare direttamente il numero intero del punto di risultato menzionato, come abbiamo fatto per l'intero Z.

Esempio n. 4

Nel terzo tipo di errore quando eseguiamo il codice e VBA non è in grado di comprendere la riga di codice. Questo può essere fatto con l'aiuto del codice On Error Resume Next insieme a MsgBox Err.Number . Considera gli stessi dati utilizzati negli esempi precedenti. Vedremo di nuovo gli stessi 3 numeri interi X, Y e Z come mostrato di seguito.

 Sub OnError () Dim X come intero, Y come intero, Z come intero Sottotitolo 

E per la stampa dell'output dei risultati, consenti finestre di messaggio per tutti i numeri interi come output.

 Sub OnError () Dim X come intero, Y come intero, Z come intero X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ora, se eseguiamo il codice completo, avremo un messaggio di errore di errore matematico Errore di runtime 11.

Ora per sovrascrivere questo errore useremo On Error Resume Next.

 Sub OnError () Dim X come intero, Y come intero, Z come intero su errore Riprendi successivo X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Ed esegui il codice. Questo darà risultati sull'uso su una linea matematica valida come mostrato di seguito.

Ora aggiungi ulteriormente la riga di codice ZResult prima dell'espressione matematica della divisione di numeri interi Z e aggiungi la riga di codice MsgBox Err.Number alla fine del codice, come mostrato di seguito.

 Sub OnError () Dim X come intero, Y come intero, Z come intero su errore Riprendi successivo X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Number End 

Ora esegui il codice usando il tasto F5 o premendo il pulsante di riproduzione come mostrato di seguito.

Come possiamo vedere nelle schermate sopra. La prima finestra di messaggio ha 0 che sta annullando un'espressione matematica errata. 2 ° e 3 ° hanno un risultato di divisione di numeri interi Y e Z. E l'ultima finestra di messaggio ha il codice di errore di runtime 11 che è probabilmente il codice di errore delle espressioni di divisione dell'intero X.

Pro di VBA On Error

  • Possiamo calcolare qualsiasi formula matematica anche se non è corretta.
  • Per strutture di codifica più grandi in cui vi sono possibilità o errori, l'utilizzo di questi metodi può fornire risultati corretti anche tra le righe di codice.
  • Ciò fornisce un risultato migliore rispetto al risultato ottenuto dai normali calcoli di Excel.

Cose da ricordare

  • Salvare sempre il file nel file Excel abilitato per le macro in modo da poter utilizzare il codice VBA creato più e più volte.
  • Compilare sempre il codice scritto prima di implementarlo con qualsiasi requisito Excel.
  • Se necessario, assegnare il codice scritto a qualsiasi pulsante in modo da poter fare rapidamente clic sul pulsante ed eseguire il codice.

Puoi scaricare questo modello Excel VBA in caso di errore qui - Modello Excel VBA in caso di errore

Articoli consigliati

Questa è stata una guida a Excel VBA in caso di errore. Qui abbiamo discusso su come utilizzare VBA On Error Statement insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti–

  1. Come usare la funzione VIM TRIM?
  2. Formato numero in VBA
  3. Guida a Excel VBA Do While Loop
  4. Come usare la funzione Trova VBA?

Categoria: