Laufzeitfehler ‚3‘
Dies ist ein Fehler, der auftritt, wenn eine Unterroutine in einem VBA-Makro auf eine „Return“-Anweisung ohne entsprechende „GoSub“-Anweisung trifft. Eine „Return“-Anweisung dient zum vorzeitigen Verlassen eines Unterprogramms und kann nur ausgeführt werden, wenn das Unterprogramm mit einer „GoSub“-Anweisung aufgerufen wurde. Wenn eine „Return“-Anweisung ohne eine „GoSub“-Anweisung ausgeführt wird, löst VBA diesen Fehler aus und beendet die Ausführung des Makros.
Dies sind mehrere mögliche Ursachen für den Fehler:
- Falsche Verwendung einer „Return“-Anweisung
- Versehentliche Verwendung einer „Return“-Anweisung anstelle von „Exit Sub“.
- Rechtschreibfehler von „GoSub“ als „GoTo“
- Falsche Verwendung einer „GoSub“-Anweisung
Wir werden uns jede dieser möglichen Ursachen ansehen und eine Lösung anbieten.
Was verursacht den Fehler?
Bevor Sie mit der Behebung des Fehlers fortfahren, müssen Sie die Fehlerursache in Ihrem VBA-Code identifizieren. Die Codezeile, die den Fehler verursacht, wird gelb hervorgehoben, sobald die Debug-Schaltfläche gedrückt wird.
Ursache 1: Falsche Verwendung einer „Return“-Anweisung.
Dies ist die häufigste Ursache für den Fehler „Return without GoSub (Error 3)“. Wenn eine Subroutine nicht mit einer „GoSub“-Anweisung aufgerufen wird, verursachen alle „Return“-Anweisungen innerhalb der Subroutine diesen Fehler.
Lösung:
Auf falsche Verwendung einer „Return“-Anweisung prüfen: Stellen Sie sicher, dass allen „Return“-Anweisungen in Ihrem VBA-Makro eine entsprechende „GoSub“-Anweisung vorangestellt ist. Wenn eine „Return“-Anweisung ohne „GoSub“-Anweisung vorhanden ist, entfernen Sie die „Return“-Anweisung oder fügen Sie die „GoSub“-Anweisung hinzu.
Ursache 2: Versehentliche Verwendung einer „Return“-Anweisung anstelle von „Exit Sub“.
„Exit Sub“ wird verwendet, um ein Unterprogramm normal zu verlassen, während „Return“ verwendet wird, um ein Unterprogramm vorzeitig zu verlassen. Wenn anstelle von „Exit Sub“ eine „Return“-Anweisung verwendet wird, tritt der Fehler auf.
Lösung:
Auf versehentliche Verwendung einer „Return“-Anweisung anstelle von „Exit Sub“ prüfen: Wenn Sie feststellen, dass eine „Return“-Anweisung anstelle von „Exit Sub“ verwendet wurde, ändern Sie die „Return“-Anweisung in „Exit Sub“.
Ursache 3: Falsche Schreibweise von „GoSub“ als „GoTo“.
Wenn die „GoSub“-Anweisung falsch als „GoTo“ geschrieben ist, erkennt VBA sie nicht als gültige Anweisung, und der Fehler tritt auf.
Lösung:
Auf falsch geschriebene „GoSub“-Anweisungen prüfen: Stellen Sie sicher, dass alle „GoSub“-Anweisungen richtig geschrieben sind. Wenn „GoSub“-Anweisungen falsch geschrieben sind, korrigieren Sie sie.
Ursache 4: Falsche Verwendung einer „GoSub“-Anweisung.
Wenn eine „GoSub“-Anweisung falsch verwendet wird, tritt der Fehler auf. Wenn beispielsweise eine „GoSub“-Anweisung zum Aufrufen einer nicht vorhandenen Subroutine verwendet wird, tritt der Fehler auf.
Lösung:
Auf falsche Verwendung einer „GoSub“-Anweisung prüfen: Stellen Sie sicher, dass alle „GoSub“-Anweisungen korrekt verwendet werden und dass die aufgerufene Subroutine existiert. Wenn eine „GoSub“-Anweisung falsch verwendet wird
Benötigen Sie einen VBA Programmierer?
Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.