VBA IFERROR

En skriftlig kod många gånger ger felet och chansen att få ett fel i komplexa fel är ganska hög. Liksom excel har IFERROR-funktion som används där det finns chanser att få ett fel. IFERROR ändrar felmeddelandet till andra textpåståenden efter behov och definieras av användaren. På liknande sätt fungerar VBA IFERROR på samma sätt som IFERROR-funktionen i Excel. Det ändrar felmeddelandet till den definierade texten av användaren.

Detta fel inträffar oftast när vi utför någon matematisk funktion eller om vi kartlägger data som är i ett annat format. IFERROR hanterar många fel, några av dem är:

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

Exempel 1

Nu kan denna IFERROR-funktion också implementeras i VBA. För att jämföra resultaten från Excel med VBA IFERROR kommer vi att infoga en kolumn där vi kommer att tillämpa VBA IFERROR-uttalande som visas nedan.

Du kan ladda ner denna VBA IFERROR Excel-mall här - VBA IFERROR Excel-mall

För detta överväger vi samma data och infogar en annan kolumn där vi kommer att utföra VBA IFERROR. Gå till VBA-fönstret och sätt in en ny modul från Infoga-menyn som visas nedan.

Nu i en nyöppnad modul, skriv underkategori med valfritt namn. Här har vi angett namnet på driftsfunktionen som visas nedan.

Koda:

 Sub VBA_IfError () Slut Sub 

Nu med hjälp av ActiveCell kommer vi att välja den första referenscellen och sedan direkt använda IFERROR-formel med referenscell (RC) -2 dividerat med -1 cellnummer. Vilket innebär att vi delar cell A med cell B i det första argumentet. Och i det andra argumentet skriver du något uttalande som vi vill ha istället för fel. Här kommer vi att använda samma tillstånd som vi har sett ovan, dvs "Ingen produktklass".

Koda:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" End Sub 

Välj nu intervallcellen som skulle vara vår nämnare. Här har vi valt cell C2.

Koda:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Välj Slut Sub 

För att dra formeln till celler nedan där vi behöver tillämpa IFERROR tills tabellen har värdena.

Koda:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "No Product Class" ")" Range ("C2"). Välj urval.End (xlDown) .Välj slut Sub 

Nu för att komma till den sista cellen i kolumnen med hjälp av kommandot Range där vi behöver dra IFERROR-formeln. Här slutar vår gräns vid cell D6.

Koda:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklass" ")" Range ("C2"). Välj urval.End (xlDown) .Välj område ("D6"). Välj Avsluta sub 

För att dra den tillämpade IFERROR ned till alla tillämpliga celler, välj räckvidden från slut (eller sista) cellen till upp till den tillämpade formelcellen för slut (xlUp) under kommandot.

Koda:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklass" ")" Range ("C2"). Välj urval.End (xlDown) .Välj område ("D6"). Välj intervall (urval, markering.änd (xlUp)). Välj slutunder 

Som vi gör Ctrl + D för att dra upp cellvärden till alla utvalda celler i Excel, här i VBA, används Selection.FillDown för att fylla samma celler upp i alla utvalda celler.

Koda:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklass" ")" Range ("C2"). Välj urval.End (xlDown) .Välj område ("D6"). Välj intervall (urval, markering.änd (xlUp)). Välj urval. 

Detta slutför kodningen av VBA IFERROR. Kör nu hela koden genom att klicka på uppspelningsknappen enligt bilden nedan.

Som vi kan se ovan, i kolumn D från cell 2 till 6 fick vi våra resultat.

Det finns ett annat format och sätt att tillämpa IFERROR i VBA. För detta kommer vi att överväga en annan uppsättning data som visas nedan. Nedan har vi försäljningsdata för vissa produkter i kolumn A och kvalitet som säljs i kolumn B. Och vi behöver kartlägga dessa data vid cell F2 med hänvisning till produkttyp Bärbar dator . Nu har data i den första tabellen # N / A i cell B3 med för bärbar mängd såld. Det betyder att källdata i sig har ett fel. Och om vi letar upp data från den första tabellen till Cell F2 kommer vi att få samma # N / A här.

För detta öppnar du en ny modul i VBA och skriver underkategori med namnet på en utförd funktion.

Koda:

 Sub VBA_IfError2 () End Sub 

Välj intervall där vi måste se utgången eller direkt aktivera den cellen med ActiveCell följt av punkt (.) Kommandorad som visas nedan.

Koda:

Välj nu FormelR1C1 i listan som används för att infoga någon excel-funktion.

Använd nu samma formel som används i Excel-funktion i VBA också.

Koda:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Fel i Data "") "Slut sub 

Välj nu cellen där vi behöver se utgången inom räckvidd. Här har vi valt cell F3.

Koda:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Fel i Data "") "Område (" B8 "). Välj Avsluta under 

Kompilera och kör nu fullständig kod med F5-tangenten eller manuellt och se resultatet som visas nedan.

Som vi kan se i ovanstående skärmdump, är utgången från produkttyp Bärbar dator från den första tabellen # N / A med feltext " Error In Data " enligt definitionen i VBA-kod.

Fördelar med VBA IFERROR-funktion

  • Det tar lite tid att tillämpa IFERROR-funktionen via VBA.
  • Resultat från Excel-insertfunktion och VBA IFERROR-kodning, båda är desamma.
  • Vi kan också formatera eller klistra in den tillämpade formeln för att undvika ytterligare problem.

Nackdelar med VBA IFERROR-funktion

  • IFERROR med denna metod kan hänvisa till intervallet för vald cell störas eftersom tabellen har begränsade celler.

Saker att komma ihåg

  • Vi kan spela in makro och ändra den inspelade kodningen enligt vårt behov.
  • Kom alltid ihåg att spara filen som makroaktiverat Excel, så att vi kan använda den tillämpade eller skapade makroen flera gånger utan problem.
  • Se till att du kommer ihåg att sammanställa den fullständiga koden innan du avslutar kommandofunktionen. Genom detta kan vi undvika eller korrigera eventuella fel.
  • Du kan tillämpa den skapade koden på en knapp eller flik och använda den med ett enda klick. Detta är det snabbaste sättet att köra koden.
  • Det bästa sättet att undvika ändringar efter att koden har körts är att klistra in speciella hela cellerna så att det inte finns någon formel i cellen.

Rekommenderade artiklar

Detta har varit en guide till Excel VBA IFERROR-funktion. Här diskuterade vi hur man använder IFERROR-funktion i VBA tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar–

  1. VBA-matriser i Excel
  2. Guide till VBA-nummerformat
  3. Guide till VBA Find
  4. Hur man använder VBA Do While Loop?

Kategori: