Arten von Fehlern in VBA für Excel

Benutzer werden in VBA häufig auf verschiedene Arten von Fehlern stoßen. Im Folgenden bieten wir verschiedene Strategien an, um mit ihnen umzugehen und sie zu lösen. Wir werden Techniken durchgehen, mit denen Sie Ihren Code während des Testens abfragen können, sowie Methoden zum Abfangen von Fehlern zur Laufzeit.

Arten von Fehlern in VBA für Excel

Das Testen und Aufspüren verschiedener Arten von Fehlern im VBA-Code kann zeitaufwändig und frustrierend sein. Es ist nicht ungewöhnlich, dass Programmierer Programmieren hören. Beim Programmieren werden Anweisungen für die Ausführung eines Computers geschrieben. Es ähnelt einem Rezept für Menschen. Ein Rezept enthält eine Liste von Aktionen, die besagen, dass weit über 30% ihrer Zeit für Tests aufgewendet werden.

Mit der Zeit werden Sie Fehler besser vermeiden können, aber es ist unwahrscheinlich, dass Sie jemals zum ersten Mal perfekten Code schreiben. Wenn Sie lernen, wie Sie VBA-Fehler vermeiden, behandeln und aufspüren, sparen Sie sich in Zukunft eine Menge Zeit.

Arten von VBA-Fehlern

Zur Vereinfachung haben wir die Arten von Codierungsfehlern in drei Gruppen eingeteilt. Für jede Gruppe werden wir einige Beispiele untersuchen und dann diskutieren, wie Sie sie untersuchen und lösen können.

1. Syntaxfehler - Eine bestimmte Codezeile ist nicht korrekt geschrieben

2. Kompilierungsfehler - Probleme, die beim Zusammenstellen von Codezeilen auftreten, obwohl die einzelnen Codezeilen sinnvoll erscheinen

3. Laufzeitfehler - Wenn der Code normalerweise im Prinzip korrekt ist, eine Aktion des Benutzers oder der verwendeten Daten jedoch zu unerwarteten Fehlern führt.

Was sind Syntaxfehler?

Mit Syntaxfehlern können Sie von VBA auf den grundlegendsten Ebenen feststellen, ob Ihr Code sinnvoll ist. Wir können einen einfachen Vergleich mit den Regeln für das Schreiben eines Satzes auf Englisch anstellen:

  • Ein Thema ist erforderlich.
  • Ein Verb ist erforderlich.
  • Ein Kapital Brief wird am Anfang erforderlich.
  • Am Ende ist eine Interpunktion erforderlich.
  • Objekte, Adjektive und andere grammatikalische Funktionen sind optional.

Jane hat 18 Fehler in ihrem VBA-Code gefunden .

In ähnlicher Weise legt VBA bestimmte Regeln fest, was in bestimmten Situationen erforderlich ist. Wenn Sie beispielsweise eine grundlegende bedingte IF-Anweisung in Ihrem Code initiieren, müssen Sie die folgenden Syntaxregeln für die erste Zeile einer IF-Anweisung replizieren.

  • Es muss mit If beginnen
  • Als nächstes muss ein logischer Test erfolgen , z. B. x> 10
  • Schließlich muss es mit dem Wort endet dann

Wenn NumberErrors> 20 ist, dann

Wenn Sie gegen die oben genannten Regeln für Englisch oder VBA verstoßen, wird Ihre Grammatik (Englisch) oder Syntax (VBA) als falsch angesehen.

So identifizieren Sie einen Syntaxfehler

Der VBA-Editor hebt Syntaxfehler rot hervor, sodass Sie sie leicht identifizieren und beheben können. Wenn Sie versuchen, Ihren Code auszuführen oder eine neue Zeile zu beginnen, wird außerdem die folgende Syntaxfehlermeldung angezeigt.

Grundlegender Syntaxfehler:

Grundlegende Syntax erro

Syntaxfehlermeldung:

Syntax Error Message Box

Aktivieren Sie die Option "Automatische Syntaxprüfung" im Menü "Optionen", um sicherzustellen, dass die Überprüfungen während der Eingabe erfolgen.

Automatische Syntaxprüfung

So beheben Sie Syntaxfehler

Syntaxfehler stellen Fehler in der Art und Weise dar, wie eine bestimmte Zeile Ihres Codes geschrieben wird. Sie müssen behoben sein, bevor Sie Ihren Code ausführen können. Mit der Erfahrung ist der rote Text alles, was Sie brauchen, um den Fehler zu erkennen. Wenn Sie jedoch immer noch nicht weiterkommen, suchen Sie einfach online nach "if Anweisungssyntax vba" oder nach einer Variation, die Ihren Anforderungen entspricht, und Sie finden zahlreiche Beispiele für die spezifische Zeile, die Sie schreiben möchten.

Was sind Kompilierungsfehler?

Kompilierungsfehler beziehen sich auf eine größere Gruppe von VBA-Fehlern, einschließlich Syntaxfehlern. Kompilierungsfehler identifizieren auch Probleme mit Ihrem Code, wenn sie als Ganzes betrachtet werden. Die Syntax jeder einzelnen Zeile mag korrekt sein, aber zusammengenommen ergeben die Zeilen Ihres Codes keinen Sinn. Kompilierungsfehler werden hervorgehoben, wenn Sie Ihren Code kompilieren oder ausführen.

So identifizieren Sie einen Kompilierungsfehler

Wenn Sie Ihren VBA-Code ausführen, werden Kompilierungsfehler in einem VBA-Dialogfeld gemäß den folgenden Beispielen angezeigt.

Wenn Ihr Projekt lang oder komplex ist und mehrere Routinen umfasst, kann es alternativ hilfreich sein, Ihren Code zu kompilieren, bevor Sie ihn ausführen. Es verhindert Situationen, in denen die Hälfte Ihres Codes erfolgreich ausgeführt wird und dann ein Fehler auftritt. Sie können Ihren VBA-Code kompilieren, indem Sie auf Debug-Menü → VBA-Projekt kompilieren klicken.

Beispiel 1

Ein Kompilierungsfehler für einen fehlenden "End if" -Teil einer IF-Anweisung. Jede einzelne Zeile im Code ist korrekt, aber zusammen stellen sie keine vollständige IF-Anweisung dar.

Kompilierungsfehler - Beispiel 1

Beispiel 2

In diesem Beispiel hat der VBA-Kompilierungsprozess einen rot hervorgehobenen Syntaxfehler festgestellt. VBA zeigt an, dass im folgenden Code eine schließende Klammer für die Funktion fehlt.

Kompilierungsfehler - Beispiel 2

Beispiel 3

Kompilierungsfehler treten häufig bei Verwendung von Option Explicit auf und treten auf, wenn eine Variable nicht explizit definiert wurde. Wenn Option Explicit aktiviert ist, ist eine Dim-Anweisung erforderlich, um alle Variablen zu deklarieren, bevor sie in Ihrem Code verwendet werden können.

Kompilierungsfehler - Beispiel 3

So beheben Sie Kompilierungsfehler

VBA-Kompilierungsfehler verhindern, dass betroffene Routinen ausgeführt werden. Bis Sie sie behoben haben, kann Ihr Code von VBA nicht richtig interpretiert werden. Die Fehlermeldungsfelder bieten häufig hilfreichere Ratschläge als bei Syntaxfehlern.

Wenn Ihnen anhand der Fehlermeldung nicht sofort klar ist, wo das Problem liegt, versuchen Sie, in der Microsoft-Hilfe eine Vorstellung davon zu erhalten, wie Ihre Anweisung oder Funktion genau geschrieben werden sollte. Hier ist ein Beispiel für die Fehlermeldung "Blockieren ohne Ende, wenn" auf der Microsoft-Website.

Block ohne wenn wenn

Was sind Laufzeitfehler?

Sobald Sie Syntaxfehler behoben und Fehler kompiliert haben, können Sie mit dem Testen oder Ausführen Ihres Codes beginnen, um festzustellen, wie gut er die gewünschten Aktionen oder Berechnungen ausführt. Wir nennen den Testzeitraum oder die Live-Ausführung von Code "Laufzeit".

Laufzeitfehler können nicht durch einfaches Betrachten des Codes erkannt werden. Sie sind das Ergebnis der Interaktion Ihres Codes mit den spezifischen Eingaben oder Daten zu diesem Zeitpunkt.

Laufzeitfehler werden häufig dadurch verursacht, dass unerwartete Daten an den VBA-Code übergeben werden, Datentypen nicht übereinstimmen, durch unerwartete Nullen dividiert werden und definierte Zellbereiche nicht verfügbar sind. Laufzeitfehler sind auch am vielfältigsten und komplexesten zu finden und zu beheben.

So identifizieren Sie Laufzeitfehler

Das VBA-Debuggen von VBA: Debuggen von Code Beim Schreiben und Ausführen von VBA-Code ist es wichtig, dass der Benutzer das Debuggen von Codefehlern lernt. Es ist die Erwartung des Excel-Benutzers, dass die Codefunktion den Problemcode gelb hervorhebt und uns einen kleinen Hinweis darauf gibt, was das Problem verursacht.

Beispiel 1

Während der folgende Code einfach eine Zahl durch die andere teilt, gibt es einige Fälle, in denen dies nicht möglich ist. Wenn beispielsweise Zelle A1 = 2 und Zelle A2 = 0 ist, ist es nicht möglich, durch Null zu teilen. Das Laufzeitfehlerfeld enthält eine Debug-Schaltfläche, die den Problemcode hervorhebt.

Laufzeitfehler - Beispiel 1

Laufzeitfehler - Beispiel 1a

Beispiel 2

In diesem Beispiel habe ich ein Array erstellt, um die Namen von n Unternehmen in meinem Arbeitsblatt zu sammeln. Ich habe dann versucht, auf das sechste Element zu verweisen, das zur Laufzeit möglicherweise vorhanden ist oder nicht. VBA zeigt eine Laufzeitfehlermeldung an und ermöglicht mir, Debug zu drücken, um das Problem zu untersuchen.

Laufzeitfehler - Beispiel 2

Sobald ich Debug drücke, hebt VBA die Codezeile hervor, die das Problem verursacht. Jetzt liegt es an mir, die Meldung "Index außerhalb des Bereichs" zu verwenden, um herauszufinden, was falsch läuft. Der tiefgestellte Fehler außerhalb des Bereichs bedeutet im Allgemeinen, dass Ihr Code im Prinzip gut ist, das gesuchte Element jedoch nicht gefunden werden kann. Am häufigsten tritt dies auf, wenn auf Zellen oder Bereiche in Excel sowie auf Arrays in Ihrem VBA-Code verwiesen wird.

Laufzeitfehler - Beispiel 2a

Um sicherzustellen, dass die Debug-Funktion aktiviert ist, sollte im Menü Optionen> Allgemein> Fehlerbehebung der Standardstatus "Bei nicht behandelten Fehlern unterbrechen" lauten. Lassen Sie die Option aktiviert.

Unterbrechen Sie unbehandelte Fehler

So beheben Sie Laufzeitfehler

Da Laufzeitfehler vielfältig und komplex sind, variieren auch die Lösungen. Die beiden allgemeinen Methoden zur Reduzierung von Laufzeitfehlern sind:

Fehlerbehebung

Es ist eine gute Idee, sich Gedanken darüber zu machen, auf welche möglichen Szenarien Ihr Code stoßen könnte. Noch besser ist es, Ihren Code anhand von Übungsdaten oder mit echten Benutzern zu testen. Auf diese Weise können Sie solche Szenarien in Ihrem VBA erkennen, wobei der Code je nach Fehler in unterschiedliche Ergebnisse verzweigt.

Beispiel 1

Hier erzwingt die Zeile "On Error Resume Next", dass der Code fortgesetzt wird, auch wenn ein Fehler erkannt wird. Wir verwenden dann den Test If Err> 0, um eine Warnmeldung zu erstellen, nur wenn der Fehler vorliegt. Der 'On Error Goto 0' setzt VBA auf seinen Standardzustand zurück.

Fehlerbehebung - Beispiel 1

Beispiel 2

Hier berechnet der Code das Einkommen pro Tag basierend auf einem monatlichen Einkommen und einer definierten Anzahl von Tagen. Wenn die Anzahl der Tage nicht angegeben ist, springen wir zu einem definierten Punkt in unserem Code mit dem Namen "NoDaysInMonthProvided:", an dem wir die durchschnittliche Anzahl der Tage in einem Monat als Grundannahme verwenden. Es ist zwar simpel, zeigt jedoch deutlich, wie Sie einen Fehler abfangen und zu einem anderen Punkt in Ihrem Code springen können.

Fehlerbehebung - Beispiel 2

Benutzeranweisungen löschen

Durch klare Dokumentationen und Arbeitsblattbezeichnungen wird sichergestellt, dass Ihre Benutzer auf die von Ihnen beabsichtigte Weise mit Ihrem Modell interagieren. Dies verhindert, dass sie Text anstelle von Zahlen eingeben oder Nullen hinterlassen, die sich später auf Ihren Code auswirken können.

Zusammenfassung

Es gibt drei Haupttypen von Fehlern in VBA, die sich auf unterschiedliche Weise auf Ihren Code auswirken können. Es ist wichtig, die Fehlererkennungsoptionen von VBA zu aktivieren, z. B. den Debugger und die automatische Syntaxprüfung. Sie helfen Ihnen dabei, den Ort und die Art der Fehler festzustellen.

Mehr Ressourcen

Finance ist der offizielle Anbieter der globalen CBCA-Zertifizierung (Certified Banking & Credit Analyst). Die CBCA-Akkreditierung (Certified Banking & Credit Analyst) ist ein globaler Standard für Kreditanalysten, der Finanzen, Rechnungswesen, Kreditanalyse und Cashflow-Analyse umfasst , Covenant-Modellierung, Kreditrückzahlungen und mehr. Zertifizierungsprogramm, das jedem helfen soll, ein erstklassiger Finanzanalyst zu werden. Um Ihre Karriere weiter voranzutreiben, sind die folgenden zusätzlichen Ressourcen hilfreich:

  • #REF Excel-Fehler #REF Excel-Fehler #REF Excel-Fehler verursachen große Probleme in Tabellenkalkulationen. In diesem kurzen Tutorial mit Beispielen und Screenshots erfahren Sie, wie Sie # REF-Fehler in Excel finden und beheben. Ein #REF! Fehler (der "ref" steht für Referenz) ist die Meldung, die Excel anzeigt, wenn eine Formel auf eine nicht mehr vorhandene Zelle verweist, die durch das Löschen von Zellen verursacht wird, die
  • Excel VBA-Beispiele Excel VBA-Beispiele Mit Excel VBA kann der Benutzer Makros erstellen, die Prozesse in Excel automatisieren. In diesem Handbuch werden anhand von Excel VBA-Beispielen gezeigt, wie ein Makro durch Einrichten des Makros aufgezeichnet, Variablen deklariert und Daten referenziert werden.
  • Tipps zum Schreiben von VBA in Excel Tipps zum Schreiben von VBA in Excel Nachfolgend finden Sie neun Tipps zum Schreiben von VBA in Excel. VBA für Excel bietet unzählige Möglichkeiten für benutzerdefinierte Berechnungen und Automatisierung.
  • VBA-Methoden VBA-Methoden Eine VBA-Methode ist ein Code, der an ein VBA-Objekt, eine Variable oder eine Datenreferenz angehängt ist und Excel mitteilt, welche Aktion in Bezug auf dieses Objekt ausgeführt werden soll. Kopieren, Einfügen und Auswählen sind nur einige Beispiele für VBA-Methoden, die ausgeführt werden können.

Empfohlen

Wurde Crackstreams geschlossen?
2022
Ist die MC-Kommandozentrale sicher?
2022
Verlässt Taliesin die kritische Rolle?
2022