VBA IFERROR

En skriftlig kode giver mange gange fejlen, og chancerne for at få en fejl i kompleks fejl er ganske høje. Ligesom excel har IFERROR-funktion, der bruges, hvor der er chancer for at få en fejl. IFERROR ændrer fejlmeddelelsen til andre tekstangivelser efter behov og defineret af brugeren. Tilsvarende fungerer VBA IFERROR det samme som IFERROR-funktionen i Excel. Det ændrer fejlmeddelelsen til den definerede tekst af brugeren.

Denne fejl opstår oftest, når vi udfører en matematisk funktion, eller hvis vi kortlægger data, der er i et andet format. IFERROR håndterer mange fejl, nogle af dem er:

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

Eksempel 1

Nu kan denne IFERROR-funktion også implementeres i VBA. For at sammenligne resultaterne fra Excel med VBA IFERROR indsætter vi en kolonne, hvor vi vil anvende VBA IFERROR-sætning som vist nedenfor.

Du kan downloade denne VBA IFERROR Excel-skabelon her - VBA IFERROR Excel-skabelon

Til dette overvejer vi de samme data og indsætter en anden kolonne, hvor vi vil udføre VBA IFERROR. Gå til VBA-vinduet, og indsæt et nyt modul fra menuen Indsæt som vist nedenfor.

Nu i et nyåbnet modul, skriv underkategori med ethvert navn. Her har vi givet navnet på driftsfunktionen som vist nedenfor.

Kode:

 Sub VBA_IfError () End Sub 

Nu ved hjælp af ActiveCell vil vi vælge den første referencecelle og derefter direkte bruge IFERROR-formlen med referencecellen (RC) -2 divideret med -1 cellenumre. Hvilket betyder, at vi deler celle A med celle B i det første argument. Og skriv i det andet argument ethvert udsagn, som vi ønsker i stedet for fejl. Her vil vi bruge den samme tilstand, som vi har set ovenfor, dvs. "Ingen produktklasse".

Kode:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklasse" ")" End Sub 

Vælg nu rækkevidden, som ville være vores nævner. Her har vi valgt celle C2.

Kode:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklasse" ")" Område ("C2"). Vælg Slut Sub 

For at trække formlen til celler under, hvor vi skal anvende IFERROR, indtil tabellen har værdierne.

Kode:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklasse" ")" Range ("C2"). Vælg valg.End (xlDown) .Vælg slut Sub 

Nu for at komme til den sidste celle i kolonnen ved hjælp af kommandoen Range, hvor vi er nødt til at trække IFERROR-formlen. Her ender vores grænse ved celle D6.

Kode:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklasse" ")" Range ("C2"). Vælg valg.End (xlDown) .Vælg område ("D6"). Vælg End Sub 

For nu at trække den anvendte IFERROR ned til alle de relevante celler skal du vælge området fra slut (eller sidste) celle til op til den anvendte formelcelle ved slut (xlUp) kommando under område .

Kode:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklasse" ")" Range ("C2"). Vælg valg.End (xlDown) .Vælg område ("D6"). Vælg rækkevidde (markering, markering.ende (xlUp)). Vælg slut under 

Som vi gør Ctrl + D til at trække op-celleværdierne til alle valgte celler i excel, her i VBA, bruges Selection.FillDown til at udfylde de samme op-celleværdier i alle valgte celler.

Kode:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Ingen produktklasse" ")" Range ("C2"). Vælg valg.End (xlDown) .Vælg område ("D6"). Vælg område (markering, markering.ende (xlUp)). Vælg valg.FyldDown End Sub 

Dette afslutter kodningen af ​​VBA IFERROR. Kør nu den komplette kode ved at klikke på afspilningsknappen som vist i skærmbilledet nedenfor.

Som vi kan se ovenfor, i kolonne D med start fra celle 2 til 6 fik vi vores resultater.

Der er et andet format og måde at anvende IFERROR i VBA. Til dette overvejer vi et andet datasæt som vist nedenfor. Nedenfor har vi salgsdata for nogle produkter i kolonne A og kvalitet, der sælges i kolonne B. Og vi har brug for at kortlægge disse data på celle F2 med henvisning til produkttype Laptop . Nu har data i den første tabel # N / A i celle B3 med for bærbar mængde udsolgt, hvilket betyder, at kildedata i sig selv har en fejl. Og hvis vi søger dataene fra den første tabel til Cell F2, får vi det samme # N / A her.

Åbn for dette nye modul i VBA og skriv underkategori med navnet på en udført funktion.

Kode:

 Sub VBA_IfError2 () End Sub 

Vælg område, hvor vi har brug for at se output eller direkte aktivere denne celle af ActiveCell efterfulgt af punkt (.) Kommandolinje som vist nedenfor.

Kode:

Vælg nu FormelR1C1 på listen, der bruges til at indsætte en excel-funktion.

Brug nu den samme formel som brugt i excel-funktion i VBA også.

Kode:

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

Vælg nu den celle, hvor vi har brug for at se output i rækkevidde. Her har vi valgt celle F3.

Kode:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Fejl i Data "") "Område (" B8 "). Vælg Afslut under 

Kompilér og kør nu komplet kode ved hjælp af F5-tasten eller manuelt og se resultatet som vist nedenfor.

Som vi kan se på ovenstående skærmbillede, er output fra produkttype Laptop fra den første tabel # N / A med fejltekst " Fejl i data " som defineret i VBA-kode.

Fordele ved VBA IFERROR-funktion

  • Det tager lidt tid at anvende IFERROR-funktionen gennem VBA.
  • Resultat fra Excel-insertfunktion og VBA IFERROR-kodning, begge er de samme.
  • Vi kan også formatere eller indsætte specielt den anvendte formel for at undgå yderligere problemer.

Ulemper ved VBA IFERROR-funktion

  • IFERROR med denne metode kan henvisning til området for den valgte celle forstyrres, da tabellen har begrænsede celler.

Ting at huske

  • Vi kan registrere makroen og ændre den indspillede kodning efter vores behov.
  • Husk altid at gemme filen som makroaktiveret Excel, så vi kan bruge den anvendte eller oprettede makro flere gange uden problemer.
  • Sørg for, at du husker at kompilere den komplette kode, før du afslutter kommandofunktionen. På denne måde kan vi undgå eller rette enhver fejl, der opstår.
  • Du kan anvende den oprettede kode på en knap eller fane og bruge den med et enkelt klik. Dette er den hurtigste måde at køre koden på.
  • Den bedste måde at undgå ændringer efter at køre koden er at indsætte specielle de komplette celler, så der ikke er nogen formel i cellen.

Anbefalede artikler

Dette har været en guide til Excel VBA IFERROR-funktion. Her diskuterede vi, hvordan man bruger IFERROR-funktion i VBA sammen med nogle praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler–

  1. VBA Arrays i Excel
  2. Vejledning til VBA-nummerformat
  3. Vejledning til VBA Find
  4. Sådan bruges VBA Do Mens Loop?

Kategori: