Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Excel 2013 VBA für Profis

Fehler unterscheiden

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Verschiedene Arten von Fehlern machen jedem Programmierer das Leben schwer. Jeweils passende Techniken vermeiden die häufigsten Fehler und helfen Ihnen, besseren Code zu schreiben.

Transkript

Fehler sind nicht einfach Fehler. Deswegen geht es auch darum, bei Fehlern deren Typen zu unterscheiden. Es gibt verschiedene Fehlertypen, die auch verschiedene Probleme verursachen. Dann gibt es zum Beispiel Syntaxfehler. Das sind im Grunde die einfachsten, im Gegensatz zu beispielsweise logischen Fehlern. Und wenn Sie das alles heil überstanden haben, gibt es immer noch Laufzeitfehler. Gucken wir uns vielleicht zuerst die Syntaxfehler an. Die werden gemeldet beim Verlassen der Zeile, etwa in solchem Code hier. If intAnzahlDokumente 99, dann machen Sie irgendwas, was da sinnvoll ist, End If. Sieht gut aus, aber leider meldet der Editor bei Verlassen der Zeile, da fehlt was. Nämlich es muss heißen, If, irgendeine Bedingung, Then. Und das lässt sich direkt beim Verlassen der Zeile feststellen. Deswegen gibt es sofort eine Meldung. Die kann man zwar wegschalten, aber da wird die Zeile immer noch rot. Also so weit alles super, beim Verlassen der Zeile gemeldet oder spätestens beim Kompilieren. Es gibt Fehler, die nicht in einer Zeile auftreten, Syntaxfehler, sondern, wie in diesem Beispiel zu sehen, erst durch mehrere Zeilen erkennbar sind. Da ist hier ein Prozedurrumpf. Sub, irgendeine Beispielprozedur, hier ist die nächste Prozedur. Und natürlich, das sieht man, wenn man da geübt hinguckt, da fehlt ein End Sub. Deswegen kann man hier mit den Augen langgehen, Sub, End Sub, Sub, End Sub muss sich immer abwechseln. Und hier ist eine Lücke. Das meldet der Compiler, zwar erst beim Kompilieren, aber rechtzeitig. Und die Stelle wird markiert. Da kann man eigentlich nicht viel falsch machen. Deswegen: Syntaxfehler, egal ob sie in einer Zeile gefunden werden, oder erst später beim Kompilieren sind eigentlich unkritisch. Die lassen sich sofort heilen, weil Sie auch direkt darauf hingewiesen werden, wo die sind und welche das sind. Viel, viel schwieriger sind logische Fehler. Die sind nämlich syntaktisch in Ordnung. Die erzeugen auch keine Fehlermeldung. Und sind trotzdem falsch. Die müssen Sie finden, obwohl Ihnen der Kopf raucht, um das rauszukriegen. Vielleicht mit einem kleinen Beispiel hier. Eine Select-Case-Anweisung Hier ist irgendeine Zahl drin, eine Integer-Zahl, die ist entweder kleiner 10, oder hat hier ein paar Werte, oder ist größer als 5 und dann wird das und das jeweils ausgeführt. Syntaktisch alles super, gibt auch keinen Fehler. Aber wenn Sie jetzt ein paar Beispiele durchrechnen, sagen wir mal die Zahl 99. Ist die kleiner als 10? Nein. Steht sie hier in der Liste? 19 bis 22, die 99 ist nicht dabei. Ist sie größer als 5? Ja. Dann wird dieser Code also ausgeführt. Dann nehmen wir mal die Zahl 7. Ist sie kleiner als 10? Ja. Wird dieser Code hier ausgeführt. Und der Rest nicht mehr. Was ist eigentlich mit der 7 und hier? Sie ist nämlich größer als 5. Hier haben Sie einen Überschneidungsbereich Zwischen 5 und 10 werden beide Teile in diesem Code eigentlich gemeint sein, ausgeführt werden nur diese. Zwischen 5 und 10, nur dieser Code, weil dann eine Select-Case-Anweisung abbricht. Also ein Denkfehler. Die Zahl 6 wird als kleiner 10 betrachtet und nicht als größer 5. Die sind also besonders schwierig zu finden. Deswegen ist der Tipp jetzt vielleicht so ein bisschen merkwürdig: Vermeiden Sie logische Fehler. Das geht am einfachsten, wenn Sie sowas wie Pair Programming machen. Das ist eine Technik, bei der zwei Programmierer vorm Bildschirm sitzen. Einer macht die wirkliche Arbeit. Und der andere guckt ihm auf die Finger. Und das wechselt so im Viertelstundenrhythmus. Weil der Zweite mitdenkt und ihm auf die Finger guckt, entdecken sie logische Fehler sehr, sehr sicher sofort. Weil ein Zweiter auch anders denkt. Wer das für sich allein macht, denkt ja immer noch im gleichen Muster. Damit kommen wir zu den Laufzeitfehlern. Die werden gemeldet, wenn der Code ausgeführt wird. Vorher sieht alles in Ordnung aus, aber zur Laufzeit ist irgendwas nicht in Ordnung. Nehmen wir zum Beispiel dieses Beispiel. Ich möchte den Namen eines Diagramms mit Debug.Print einfach in den Direktbereich ausdrucken. Und der Haken dabei ist, ich verlasse mich drauf, dass zu diesem Zeitpunkt, ActiveChart, nämlich irgendein Diagramm aktivierbar ist. Wenn Sie aber gerade eine Tabelle offen haben, fällt ActiveChart auf die Nase, und meldet sich so komisch: "Objektvariable oder With-Blockvariable nicht festgelegt." Ein With gibt es hier gar nicht und die Objektvariable ActiveChart haben Sie nie wissentlich festgelegt, die wird von Excel erzeugt, ist aber davon abhängig, wie die Umgebung gerade aussieht. Also Laufzeitfehler werden erst dann gemeldet, wenn der Code ausgeführt wird, aber eben leider nicht immer, sondern nur dann, wenn der Fehler auftritt. Kleines zweites Beispiel: Ich will eine Datei laden. Jetzt habe ich auf meinem Rechner getestet, super, diese Datei in Laufwerk K, die heißt Test.xlsx, lässt sich öffnen. Alles super. Welche Vorbedingungen soll es noch geben? Tja, auf einem anderen Rechner gibt es ein Laufwerk K gar nicht. Oder die Datei ist noch nicht da. Haben Sie sofort einen Laufzeitfehler. Also: Laufzeitfehler lassen sich leider erst nur in unterschiedlichen Umgebungen testen. Immerhin kriegen Sie dann eine Fehlermeldung. Das ist ja schonmal was. Wenn Sie sich an die logischen Fehler erinnern. Also Syntaxfehler sofort zu finden. Logische Fehler nur durch viel Nachdenken. Und Laufzeitfehler, wenn Sie Glück haben, mit einer Meldung.

Excel 2013 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2013, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!