VBA IFERROR

Un codice scritto molte volte dà l'errore e le possibilità di ottenere un errore in errore complesso sono piuttosto alte. Come Excel ha la funzione IFERROR che viene utilizzata dove ci sono possibilità di ottenere un errore. IFERROR modifica il messaggio di errore in altre istruzioni di testo come richiesto e definito dall'utente. Allo stesso modo, VBA IFERROR funziona come la funzione IFERROR di Excel. Cambia il messaggio di errore nel testo definito dall'utente.

Questo errore si verifica principalmente quando eseguiamo qualsiasi funzione matematica o se stiamo mappando dati che sono in un formato diverso. IFERROR gestisce molti errori, alcuni dei quali sono:

#VALUE !, # N / A, # DIV / 0 !, #REF !, #NUM !, #NULL! E #NAME?

Esempio 1

Ora questa funzione IFERROR può essere implementata anche in VBA. Ora per confrontare i risultati di Excel con VBA IFERROR inseriremo una colonna in cui applicheremo l'istruzione VBA IFERROR come mostrato di seguito.

Puoi scaricare questo modello VBA IFERROR Excel qui - Modello VBA IFERROR Excel

Per questo, consideriamo gli stessi dati e inseriamo un'altra colonna in cui eseguiremo VBA IFERROR. Vai alla finestra VBA e inserisci un nuovo modulo dal menu Inserisci come mostrato di seguito.

Ora in un modulo appena aperto, scrivi sottocategoria con qualsiasi nome. Qui abbiamo dato il nome della funzione operativa come mostrato di seguito.

Codice:

 Sub VBA_IfError () End Sub 

Ora con l'aiuto di ActiveCell, selezioneremo la prima cella di riferimento e quindi utilizzeremo direttamente la formula IFERROR con cella di riferimento (RC) -2 divisa per -1 numeri di cella. Ciò significa che stiamo dividendo la cella A per la cella B nel primo argomento. E nel secondo argomento scrivi qualsiasi affermazione che vogliamo al posto dell'errore. Qui useremo lo stesso stato che abbiamo visto sopra, cioè "Nessuna classe di prodotto".

Codice:

 Sottotitoli VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Nessuna classe di prodotto" ")" End Sub 

Ora seleziona la cella di intervallo che sarebbe il nostro denominatore. Qui abbiamo selezionato la cella C2.

Codice:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Nessuna classe di prodotto" ")" Range ("C2"). Seleziona End Sub 

Ora trascina la formula nelle celle sottostanti dove dobbiamo applicare IFERROR fino a quando la tabella non ha i valori.

Codice:

 Sotto VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Nessuna classe di prodotto" ")" Range ("C2"). Seleziona Selection.End (xlDown) .Seleziona Fine Sub 

Ora arriviamo all'ultima cella della colonna con l'aiuto del comando Range dove dobbiamo trascinare la formula IFERROR. Qui il nostro limite termina nella cella D6.

Codice:

 Sotto VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Nessuna classe di prodotto" ")" Range ("C2"). Seleziona Selection.End (xlDown) .Seleziona intervallo ("D6"). Seleziona End Sub 

Ora per trascinare l'IFERRORE applicato verso il basso su tutte le celle applicabili selezionare la cella Intervallo da Fine (o Ultimo) su Fino alla cella della formula applicata mediante il comando Fine (xlUp) in Intervallo .

Codice:

 Sotto VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Nessuna classe di prodotto" ")" Range ("C2"). Seleziona Selection.End (xlDown) .Seleziona intervallo ("D6"). Seleziona Gamma (Selezione, Selezione.Fine (xlUp)). Seleziona Fine sott 

Mentre facciamo Ctrl + D per trascinare i valori delle celle in alto su tutte le celle selezionate in Excel, qui in VBA, Selection.FillDown viene utilizzato per riempire gli stessi valori di celle in alto in tutte le celle selezionate.

Codice:

 Sotto VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Nessuna classe di prodotto" ")" Range ("C2"). Seleziona Selection.End (xlDown) .Seleziona intervallo ("D6"). Seleziona Range (Selection, Selection.End (xlUp)). Select.FillDown End Sub 

Questo completa la codifica di VBA IFERROR. Ora esegui il codice completo facendo clic sul pulsante di riproduzione come mostrato nell'immagine seguente.

Come possiamo vedere sopra, nella colonna D a partire dalla cella 2 a 6 abbiamo ottenuto i nostri risultati.

Esiste un altro formato e un modo per applicare IFERROR in VBA. Per questo, prenderemo in considerazione un'altra serie di dati come mostrato di seguito. Di seguito sono riportati i dati di vendita di alcuni prodotti nella colonna A e la qualità venduta nella colonna B. E abbiamo bisogno di mappare questi dati nella cella F2 con riferimento al tipo di prodotto Laptop . Ora i dati nella prima tabella hanno # N / A nella cella B3 con quantità per laptop esaurita, il che significa che i dati di origine stessi hanno un errore. E se cerchiamo i dati dalla prima tabella alla cella F2 otterremo lo stesso # N / A qui.

Per questo aprire un nuovo modulo in VBA e scrivere sottocategoria con il nome di una funzione eseguita.

Codice:

 Sottotitolo VBA_IfError2 () End Sub 

Seleziona l'intervallo in cui è necessario visualizzare l'output o attivare direttamente quella cella tramite ActiveCell seguito dalla riga di comando punto (.) Come mostrato di seguito.

Codice:

Ora seleziona FormulaR1C1 dall'elenco che viene utilizzato per inserire qualsiasi funzione Excel.

Ora usa la stessa formula usata nella funzione Excel anche in VBA.

Codice:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Errore in Dati "") "End Sub 

Ora seleziona la cella in cui dobbiamo vedere l'output in Range. Qui abbiamo selezionato la cella F3.

Codice:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Errore in Dati "") "Range (" B8 "). Selezionare End Sub 

Ora compila ed esegui il codice completo usando il tasto F5 o manualmente e vedi il risultato come mostrato di seguito.

Come possiamo vedere nella schermata sopra, l'output del tipo di prodotto Laptop, dalla prima tabella # N / A è con il testo di errore " Errore nei dati " come definito nel codice VBA.

Pro della funzione VBA IFERROR

  • Ci vuole poco tempo per applicare la funzione IFERROR tramite VBA.
  • Risultato della funzione di inserimento Excel e della codifica VBA IFERROR, entrambi sono uguali.
  • Siamo in grado di formattare o incollare anche la formula applicata per evitare ulteriori problemi.

Contro della funzione VBA IFERROR

  • IFERROR con questo metodo, fare riferimento all'intervallo della cella selezionata può essere disturbato poiché la tabella ha celle limitate.

Cose da ricordare

  • Possiamo registrare la macro e modificare la codifica registrata secondo le nostre necessità.
  • Ricorda sempre di salvare il file come Excel abilitato per le macro, in modo da poter utilizzare la macro applicata o creata più volte senza alcun problema.
  • Assicurati di ricordare di compilare il codice completo prima di terminare la funzione di comando. Con questo, possiamo evitare o correggere qualsiasi errore riscontrato.
  • È possibile applicare il codice creato in un pulsante o in una scheda e utilizzarlo con un solo clic. Questo è il modo più veloce per eseguire il codice.
  • Il modo migliore per evitare qualsiasi modifica dopo aver eseguito il codice è incollare le celle complete in modo che non ci sia alcuna formula nella cella.

Articoli consigliati

Questa è stata una guida alla funzione IFERROR VBA di Excel. Qui abbiamo discusso su come utilizzare la funzione IFERROR in VBA insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti–

  1. Array VBA in Excel
  2. Guida al formato numerico VBA
  3. Guida a VBA Find
  4. Come usare VBA Do While Loop?

Categoria: