Syntax-Fehler, logische Fehler, Laufzeitfehler, Datentyp-Probleme

Syntax-Fehler

∅ 1.7 / 6 Bewertungen

Syntax-Fehler

Auf dieser Seite

Syntax-Fehler sind die typischen Schreibfehler, die jedem passieren. Wenn Sie in einer einzigen Zeile auffallen, meldet sich der VBA-Editor direkt. Sind sie erst mehrere Zeilen später erkennbar, sagt der Compiler Bescheid.

Syntaxfehler treten meistens in einer einzigen Zeile auf und können daher vom VBA-Editor direkt erkannt und gemeldet werden. Die typischen Klassiker sind Schreibfehler wie beispielsweise in einem Word/Excel-Formular Me.AktivControl (richtig wäre Me.ActiveControl) oder Auslassungen wie If i > 10 (es fehlt Then dahinter).

Der Editor färbt beim Verlassen der fehlerhaften Zeile diese nicht nur rot, sondern erzeugt außerdem noch eine Meldung.

Da solche Flüchtigkeitsfehler meistens sofort ersichtlich sind, können Sie das lästige Bestätigen der Meldung vermeiden. Deaktivieren Sie dazu im VBA-Menü [Extras] [Optionen] [Editor] die Einstellung Automatische Syntaxüberprüfung.

Trotz der Beschriftung dieser Option wird genau nicht die Syntaxüberprüfung abgeschaltet. Vielmehr wird nur die Meldung unterdrückt und weiterhin die Zeile rot gefärbt.

Zu diesen schon genannten "klassischen" Fehlern in einer einzigen Zeile kommen solche, die erst einige Zeilen später bemerkt werden. Dabei handelt es sich vor allem um das Schließen geöffneter Blöcke, also zu jedem If ein notwendiges End If, zu jedem With ein End With und so weiter.

Sicherlich seltener, aber ebenso im Zusammenhang erst aufzuspüren, ist es beispielsweise, ein With mit einem End If zu schließen oder ein Exit Function statt eines Exit Sub einzusetzen.

Beide Arten von Syntaxfehlern sind aber relativ harmlos, weil direkt beim Verlassen der Zeile oder spätestens beim Kompilieren eine Meldung deutlich darauf hinweist.

55025_blockiffehlt.png

Beim Starten der Prozedur meldet VBA einen Kompilierfehler

Nachdem VBA die obige Fehlermeldung angezeigt hat, ist die Zeile gelb hinterlegt, welche auszuführen versucht wurde:

55026_blockiffehlt02.png

Die gelbe Markierung kennzeichnet die nächste Zeile, die noch vor der Ausführung steht

Mit dem Menü Ausführen/Zurücksetzen können Sie den Programmlauf stoppen und den Fehler beheben.