VBA IFERROR

Ein oft geschriebener Code führt zu Fehlern, und die Wahrscheinlichkeit, dass bei komplexen Fehlern Fehler auftreten, ist sehr hoch. Wie Excel verfügt auch Excel über eine IFERROR-Funktion, die verwendet wird, wenn die Möglichkeit besteht, dass ein Fehler auftritt. IFERROR ändert die Fehlermeldung nach Bedarf in andere vom Benutzer definierte Textanweisungen. In ähnlicher Weise funktioniert VBA IFERROR wie die IFERROR-Funktion von Excel. Es ändert die Fehlermeldung in den vom Benutzer definierten Text.

Dieser Fehler tritt meistens auf, wenn wir eine mathematische Funktion ausführen oder Daten in einem anderen Format abbilden. IFERROR behandelt viele Fehler, einige davon sind:

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

Beispiel 1

Diese IFERROR-Funktion kann nun auch in VBA implementiert werden. Um nun die Ergebnisse aus Excel mit VBA IFERROR zu vergleichen, fügen Sie eine Spalte ein, in der die VBA IFERROR-Anweisung angewendet wird, wie unten gezeigt.

Sie können diese VBA-IFERROR-Excel-Vorlage hier herunterladen - VBA-IFERROR-Excel-Vorlage

Dazu betrachten wir die gleichen Daten und fügen eine weitere Spalte ein, in der wir VBA IFERROR ausführen. Gehen Sie zum VBA-Fenster und fügen Sie ein neues Modul aus dem Menü Einfügen ein (siehe unten).

Schreiben Sie nun in ein neu geöffnetes Modul eine Unterkategorie mit einem beliebigen Namen. Hier haben wir den Namen der Bedienfunktion wie unten gezeigt angegeben.

Code:

 Sub VBA_IfError () End Sub 

Jetzt wählen wir mit Hilfe von ActiveCell die erste Referenzzelle aus und verwenden dann direkt IFERROR Formula mit Referenzzelle (RC) -2 geteilt durch -1 Zellennummern. Das heißt, wir teilen Zelle A durch Zelle B im ersten Argument. Und im zweiten Argument schreiben Sie eine beliebige Aussage, die wir anstelle des Irrtums wollen. Hier verwenden wir den gleichen Status, den wir oben gesehen haben, dh "Keine Produktklasse".

Code:

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

Wählen Sie nun die Bereichszelle aus, die unser Nenner sein würde. Hier haben wir die Zelle C2 ausgewählt.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Keine Produktklasse" ")" Range ("C2"). Wählen Sie End Sub 

Ziehen Sie nun die Formel in die unteren Zellen, in denen IFERROR angewendet werden muss, bis die Tabelle die Werte enthält.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Keine Produktklasse" ")" Range ("C2"). Select Selection.End (xlDown) .Select End Sub 

Kommen wir nun mit Hilfe des Befehls Range zur letzten Zelle der Spalte, in die wir die IFERROR-Formel ziehen müssen. Hier endet unser Limit bei Zelle D6.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Keine Produktklasse" ")" Range ("C2"). Select Selection.End (xlDown) .Select Range ("D6") Wählen Sie End Sub 

Um nun den angewendeten IFERROR nach unten auf alle anwendbaren Zellen zu ziehen, wählen Sie unter Bereich den Befehl Bereich von der Endzelle (oder der letzten) bis zur angewendeten Formelzelle nach Ende (xlUp) .

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Keine Produktklasse" ")" Range ("C2"). Select Selection.End (xlDown) .Select Range ("D6"). Bereich auswählen (Auswahl, Auswahlende (xlUp)). End Sub auswählen 

Während wir Strg + D drücken, um die oberen Zellenwerte auf alle ausgewählten Zellen in Excel zu ziehen, wird in VBA Selection.FillDown verwendet, um die gleichen oberen Zellenwerte in alle ausgewählten Zellen zu füllen.

Code:

 Sub VBA_IfError () ActiveCell.FormulaR1C1 = "= IFERROR (RC (-2) / RC (-1), " "Keine Produktklasse" ")" Range ("C2"). Select Selection.End (xlDown) .Select Range ("D6"). Bereich auswählen (Auswahl, Auswahl.Ende (xlUp)). Auswahl.FillDown End Sub auswählen 

Damit ist die Codierung von VBA IFERROR abgeschlossen. Führen Sie nun den vollständigen Code aus, indem Sie auf die Wiedergabetaste klicken (siehe Abbildung unten).

Wie wir oben sehen können, haben wir in Spalte D ab Zelle 2 bis 6 unsere Ergebnisse erhalten.

Es gibt ein anderes Format und eine andere Möglichkeit, IFERROR in VBA anzuwenden. Zu diesem Zweck betrachten wir einen anderen Datensatz wie unten gezeigt. Nachfolgend finden Sie Verkaufsdaten einiger Produkte in Spalte A und die in Spalte B verkaufte Qualität. Diese Daten müssen in Zelle F2 unter Bezugnahme auf den Produkttyp Laptop zugeordnet werden . Jetzt sind die Daten in der ersten Tabelle in Zelle B3 mit der Nummer N / A ausverkauft, was bedeutet, dass die Quelldaten selbst einen Fehler aufweisen. Und wenn wir die Daten aus der ersten Tabelle in Zelle F2 nachschlagen, erhalten wir hier das gleiche N / A.

Öffnen Sie dazu ein neues Modul in VBA und schreiben Sie Subcategory mit dem Namen einer ausgeführten Funktion.

Code:

 Sub VBA_IfError2 () End Sub 

Wählen Sie den Bereich aus, in dem die Ausgabe angezeigt werden soll, oder aktivieren Sie diese Zelle direkt mit ActiveCell, gefolgt von der Befehlszeile mit einem Punkt (.) ( Siehe unten).

Code:

Wählen Sie nun FormulaR1C1 aus der Liste aus, die zum Einfügen einer Excel-Funktion verwendet wird.

Verwenden Sie jetzt die gleiche Formel wie in der Excel-Funktion in VBA.

Code:

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

Wählen Sie nun die Zelle aus, in der die Ausgabe im Bereich angezeigt werden soll. Hier haben wir die Zelle F3 ausgewählt.

Code:

 Sub VBA_IfError2 () ActiveCell.FormulaR1C1 = "= IFERROR (VLOOKUP (RC (-1), R (-1) C (-5): R (3) C (-4), 2, 0)", "Error In Daten "") "Bereich (" B8 "). Wählen Sie End Sub 

Kompilieren Sie nun den vollständigen Code und führen Sie ihn mit der Taste F5 oder manuell aus. Das Ergebnis sehen Sie wie folgt.

Wie im obigen Screenshot zu sehen ist, enthält die Ausgabe des Produkttyps Laptop aus der ersten Tabelle # N / A den im VBA-Code definierten Fehlertext " Fehler in Daten ".

Vorteile der VBA-IFERROR-Funktion

  • Das Anwenden der IFERROR-Funktion über VBA nimmt nur wenig Zeit in Anspruch.
  • Das Ergebnis der Excel-Einfügefunktion und der VBA-IFERROR-Codierung ist identisch.
  • Wir können auch die angewendete Formel formatieren oder einfügen, um weitere Probleme zu vermeiden.

Nachteile der VBA-IFERROR-Funktion

  • Bei dieser Methode kann der Verweis auf den Bereich der ausgewählten Zelle gestört werden, da die Tabelle nur über begrenzte Zellen verfügt.

Dinge, an die man sich erinnern sollte

  • Wir können das Makro aufzeichnen und die aufgezeichnete Codierung gemäß unseren Anforderungen ändern.
  • Denken Sie immer daran, die Datei als Makro-fähiges Excel zu speichern, damit wir das angewendete oder erstellte Makro problemlos mehrmals verwenden können.
  • Vergessen Sie nicht, den gesamten Code zu kompilieren, bevor Sie die Befehlsfunktion beenden. Auf diese Weise können wir auftretende Fehler vermeiden oder korrigieren.
  • Sie können den erstellten Code auf eine Schaltfläche oder Registerkarte anwenden und ihn mit einem einzigen Klick verwenden. Dies ist der schnellste Weg, um den Code auszuführen.
  • Der beste Weg, Änderungen nach dem Ausführen des Codes zu vermeiden, besteht darin, die gesamten Zellen so einzufügen, dass keine Formeln in die Zelle eingefügt werden.

Empfohlene Artikel

Dies war eine Anleitung zur Excel VBA IFERROR-Funktion. Hier haben wir die Verwendung der IFERROR-Funktion in VBA zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA-Arrays in Excel
  2. Leitfaden zum VBA-Zahlenformat
  3. Leitfaden zur VBA-Suche
  4. Wie verwende ich VBA Do While Loop?

Kategorie: