VBA IFERROR

Een geschreven code geeft vaak de fout en de kans op een fout in een complexe fout is vrij groot. Net als Excel heeft de IFERROR-functie die wordt gebruikt wanneer er kans is op een foutmelding. IFERROR verandert het foutbericht in andere tekstverklaringen zoals vereist en gedefinieerd door de gebruiker. Op dezelfde manier werkt VBA IFERROR hetzelfde als de IFERROR-functie van Excel. Het verandert het foutbericht in de gedefinieerde tekst door de gebruiker.

Deze fout treedt meestal op wanneer we een wiskundige functie uitvoeren of als we gegevens in een ander formaat toewijzen. IFERROR verwerkt veel fouten, sommige zijn:

#VALUE !, # N / A, # DIV / 0 !, #REF !, #NUM !, #NULL! En #NAAM?

Voorbeeld 1

Nu kan deze IFERROR-functie ook in VBA worden geïmplementeerd. Om de resultaten van Excel met VBA IFERROR te vergelijken, voegen we een kolom in waar we de VBA IFERROR-instructie toepassen zoals hieronder weergegeven.

U kunt deze VBA IFERROR Excel-sjabloon hier downloaden - VBA IFERROR Excel-sjabloon

Hiervoor beschouwen we dezelfde gegevens en voegen we een andere kolom in waar we VBA IFERROR uitvoeren. Ga naar het VBA-venster en voeg een nieuwe module in vanuit het menu Invoegen zoals hieronder wordt getoond.

Schrijf nu in een nieuw geopende module Subcategorie met een willekeurige naam. Hier hebben we de naam van de bedieningsfunctie gegeven zoals hieronder getoond.

Code:

 Sub VBA_IfError () End Sub 

Nu zullen we met behulp van ActiveCell de eerste referentiecel selecteren en vervolgens direct IFERROR Formula gebruiken met referentiecel (RC) -2 gedeeld door -1 celnummers. Wat betekent dat we cel A door cel B in het eerste argument delen. En schrijf in het tweede argument elke verklaring die we willen in plaats van fouten. Hier zullen we dezelfde staat gebruiken die we hierboven hebben gezien: "Geen productklasse".

Code:

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

Selecteer nu de bereikcel die onze noemer zou zijn. Hier hebben we cel C2 geselecteerd.

Code:

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

Sleep nu de formule naar onderstaande cellen waar we IFERROR moeten toepassen totdat de tabel de waarden heeft.

Code:

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

Om nu met de opdracht Bereik naar de laatste cel van de kolom te gaan, moeten we de formule IFERROR slepen. Hier eindigt onze limiet bij cel D6.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Geen productklasse" ")" Bereik ("C2"). Selecteer selectie.Einde (xlDown). Selecteer bereik ("D6"). Selecteer End Sub 

Om de toegepaste IFERROR nu naar alle van toepassing zijnde cellen te slepen, selecteert u de cel Bereik van einde (of laatste) tot Tot de toegepaste formule cel per einde (xlUp) -opdracht onder Bereik .

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Geen productklasse" ")" Bereik ("C2"). Selecteer selectie.Einde (xlDown). Selecteer bereik ("D6"). Selecteer Bereik (Selectie, Selectie. Einde (xlUp)). Selecteer Einde Sub 

Zoals we Ctrl + D doen om de waarden van de cellen omhoog naar alle geselecteerde cellen in Excel te slepen, hier in VBA, wordt Selection.FillDown gebruikt om dezelfde waarden van de cellen omhoog in alle geselecteerde cellen te vullen.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Geen productklasse" ")" Bereik ("C2"). Selecteer selectie.Einde (xlDown). Selecteer bereik ("D6"). Selecteer bereik (selectie, selectie. Einde (xlUp)). Selecteer selectie. Invullen Einde Sub 

Hiermee is de codering van VBA IFERROR voltooid. Voer nu de volledige code uit door op de afspeelknop te klikken, zoals weergegeven in onderstaande screenshot.

Zoals we hierboven kunnen zien, hebben we in kolom D vanaf cel 2 tot en met 6 onze resultaten gekregen.

Er is een ander formaat en een manier om IFERROR in VBA toe te passen. Hiervoor zullen we een andere set gegevens overwegen, zoals hieronder weergegeven. Hieronder hebben we verkoopgegevens van sommige producten in kolom A en kwaliteit verkocht in kolom B. En we moeten deze gegevens in cel F2 in kaart brengen met verwijzing naar producttype Laptop . Nu hebben gegevens in de eerste tabel # N / A in cel B3 met voor Laptop-hoeveelheid uitverkocht, wat betekent dat brongegevens zelf een fout hebben. En als we de gegevens uit de eerste tabel opzoeken in Cell F2, krijgen we hier dezelfde # N / A.

Open hiervoor een nieuwe module in VBA en schrijf Subcategorie met de naam van een uitgevoerde functie.

Code:

 Sub VBA_IfError2 () End Sub 

Selecteer het bereik waar we de uitvoer moeten zien of activeer die cel direct door ActiveCell gevolgd door de puntregel (.) Zoals hieronder getoond.

Code:

Selecteer nu FormulaR1C1 uit de lijst die wordt gebruikt voor het invoegen van een excel-functie.

Gebruik nu dezelfde formule die ook wordt gebruikt in de Excel-functie in VBA.

Code:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VERT.ZOEKEN (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Fout in Gegevens "") "Einde Sub 

Selecteer nu de cel waar we de uitvoer in Bereik moeten zien. Hier hebben we cel F3 geselecteerd.

Code:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VERT.ZOEKEN (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0), " "Fout in Gegevens "") "Bereik (" B8 "). Selecteer Einde Sub 

Compileer en voer nu de volledige code uit met de F5-toets of handmatig en bekijk het resultaat zoals hieronder wordt weergegeven.

Zoals we in de bovenstaande schermafbeelding kunnen zien, is de uitvoer van producttype Laptop, uit eerste tabel # N / A, met fouttekst " Fout in gegevens " zoals gedefinieerd in VBA-code.

Voordelen van VBA IFERROR-functie

  • Het kost weinig tijd om de IFERROR-functie toe te passen via VBA.
  • Resultaat van Excel-invoegfunctie en VBA IFERROR-codering, beide zijn hetzelfde.
  • We kunnen de toegepaste formule ook opmaken of plakken om verder probleem te voorkomen.

Nadelen van VBA IFERROR-functie

  • IFERROR met deze methode kan het verwijzen naar het bereik van de geselecteerde cel verstoord raken omdat de tabel beperkte cellen heeft.

Dingen om te onthouden

  • We kunnen de macro opnemen en de opgenomen codering aanpassen volgens onze behoefte.
  • Onthoud altijd dat u het bestand opslaat als Excel met ingeschakelde macro, zodat we de toegepaste of gemaakte macro zonder problemen meerdere keren kunnen gebruiken.
  • Zorg ervoor dat u vergeet de volledige code te compileren voordat u de opdrachtfunctie beëindigt. Hiermee kunnen we eventuele fouten voorkomen of corrigeren.
  • U kunt de gemaakte code toepassen op een knop of tabblad en deze met een enkele klik gebruiken. Dit is de snelste manier om de code uit te voeren.
  • De beste manier om wijzigingen na het uitvoeren van de code te voorkomen, is door de volledige cellen speciaal te plakken, zodat er geen formule in de cel komt.

Aanbevolen artikelen

Dit is een leidraad geweest voor Excel VBA IFERROR-functie. Hier hebben we besproken hoe de IFERROR-functie in VBA kan worden gebruikt, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen–

  1. VBA-arrays in Excel
  2. Handleiding voor VBA-nummerindeling
  3. Gids voor VBA Find
  4. Hoe VBA Do While Loop te gebruiken?

Categorie: