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

Excel 2013 VBA für Profis

Programmablauf verfolgen

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Unabhängig davon, ob tatsächlich ein Fehler aufgetreten ist, lässt sich der Code an fast beliebiger Stelle unterbrechen. So vollziehen Sie nach, ob Ihr Programm wie geplant arbeitet und alle Variablen die erwarteten Inhalte besitzen.

Transkript

Schon im normalen Programmablauf, aber noch viel mehr bei der Fehlersuche ist es wichtig, rauszukriegen, wo sich Ihr Programm eigentlich gerade befindet bei der Abarbeitung. Deswegen möchte ich gern ein, zwei Tastekürzel nennen, die an dieser Stelle sehr praktisch sind. Das geht auch über das Menü, aber da ist die Tastatur schon praktischer. Es beginnt damit, dass ich normalerweise mit F5 so ein Programm starte. Drücke F5, Simsalabim, irgendwas ist passiert, aber ich habe nichts gesehen. Das ist manchmal schwierig. Sie wollen gern zugucken und zeilenweise prüfen, ob er an der Stelle vorbeikommt. Also gehen Sie nicht auf F5, das entspricht dem Klick hier oben, sondern nehmen stattdessen F8. Und bevor Sie sich das alles merken müssen, F8, steht hier nämlich auch, ist die Einzelschritt-Behandlung. Also ich stelle den Cursor an diese Prozedur und gehe jetzt mit F8 durch. Dann wird die zu berbeitende, auszuführende Zeile gelb hinterlegt. Die ist noch nicht ausgeführt, es geht jetzt erst los, mit diesem F8. Dann ist das vor On Error Resume Next. Das ist ausgeführt, jetzt ist er vor Set wksInfo. Sie sehen das, wenn ich die Maus drüberlege, das ist noch Nothing. Ich kann auch hier mit der Maus drüberfahren und sehe, welchen Inhalt das gerade alles hat. Das ist also noch Nothing drin. Wenn ich mit F8 weitergehen, dann steht da jetzt was drin. Weil das so nicht darstellbar ist, erscheint da gar nichts mehr. Aber ich kann jetzt zum Beispiel prüfen. Machen Sie hier einen Doppelklick und ziehen rüber, sodass es markiert ist, einmal mit der Maus zur Seite. Und dann ist es so ein bisschen ein Glücksspiel. Manchmal zeigt Ihnen der Compiler dann noch das Info an. Wenn nicht, wie hier, machen Sie einen Rechtsklick drauf und lassen Überwachung hinzufügen einschalten. Können Sie im Grunde alles ungesehen mit OK bestätigen. Da steht schon das Richtige, der markierte Ausdruck, richtige Prozedur und Modul, einfach auf OK gehen. Dann steht jetzt hier unten, was darin enthalten ist. Einfache Konstante oder Variablen werden immer angezeigt, so zusammenhängende Ausdrücke sind immer so ein bisschen schwierig. Also zur Not mit Überwachung. Und dann können Sie jetzt mit F8 durchgehen. Und Sie sehen, der ist auf 0, deswegen ist er hier in das End If gesprungen. Und jetzt kommt das letzte F8. Das war es. Deswegen steht hier jetzt "Außerhalb des Kontextes". Der Code ist durchgelaufen. Jetzt werde ich mit Alt+F11 erstmal dafür sorgen, dass diese Tabelle fehlt und damit ein Fehler auftritt. Und werde jetzt genauso mit F8 wieder durchlaufen. Sie sehen unten, die Err.Number ist noch auf 0. Jetzt tritt ein Fehler auf, wenn ich jetzt nämlich F8 drücke. Und Sie sehen hier Fehler Nummer 9. Der wird jetzt hier im If geprüft. Also ist ungleich 0. Mit F8 sehen Sie jetzt, dass der Code hier reinspringt, dass wksInfo jetzt zuweist, und den Namen von Tabelle9 auf Tabelle Info ändert. Noch ist Err.Number immer auch auf 9. Das wird sich in dieser Zeile ändern, sobald Sie etwas an der Fehlerbehandlung ändern werden. Die letzten Fehlernummern und Beschreibungen einmal zurückgesetzt. Jetzt ist deswegen Err.Number wieder 0. Der letzte Fehler ist aus dem Speicher. Und Sie können das jederzeit, mache ich jetzt mit F5, bis zum Schluss durchlaufen lassen, ach wenn das hier gerade nur noch zwei Schritte waren. Also die beiden wesentlichen Tasten sind entweder F5, einmal durchlaufen lassen, oder F8, häppchenweise durchlaufen lassen. Das geht auch stückchenweise. Wenn Sie sagen, der Rest ist mir egal, aber ab hier möchte ich zugucken, dann klicken Sie hierhin, setzen einen sogenannten Breakpoint. Das können Sie auch machen, indem Sie mit F9-Taste in der Zeile arbeiten. Und das können auch mehrere sein. Diese Breakpoints werden nicht mitgespeichert. Wenn Sie also die Datei schließen, sind die sicher alle weg. Wenn Sie die vorher loswerden wollen, gehen Sie auf Und jetzt setze ich den einen wieder. Das heißt, ich starte hier, es gilt immer, wo der Cursor blinkt, mit F5. Dann läuft er unbegrenzt durch bis zu meinen Breakpoint. Und ich kann jetzt einzeln wieder mit F8 zugucken, und dann wieder mit F5 weiterlaufen lassen. Das ist bei größerem Programmcode sehr viel praktischer als mit F8 sich da so hinzustoppeln und zu warten bis der große Teil des Codes, der sowieso läuft, durch ist. Das ist nicht nötig. Wenn ich jetzt zum Beispiel rauskriegen will, ob er überhaupt in dieses If reingeht, setze ich hier einen Breakpoint, drücke F5 und lerne dazu, ist nicht vorbeigekommen, hat nicht gestoppt, weil es diese Tabelle ja gibt. Die werde ich jetzt löschen. Also Tabelle Info Löschen. Und wenn ich jetzt den gleichen Code mit F5 laufen lasse, dann springt der Cursor in diese Zeile, weil das If erreicht wurde und ich deswegen hier lande. So kann man also sehr schnell suchen, geht er ins If oder nicht. Und ich nehme den Breakpoint mal wieder raus. Jetzt könnte ich ihn mit F5 weiterlaufen lassen. Ich will Ihnen an der Stelle aber auch zeigen, es geht noch anders. Ich kann auch diese gelbe Markierung einzeln nehmen und irgendwo hinschieben. Da zum Beispiel. Das gibt jetzt natürlich einen schweren Fehler, wenn das wksInfo nicht erzeugt wurde, noch auf Nothing steht, dann gibt es wieder einen Fehler. Also ich stoppe ihn vorsichtshalber mal. Das ist nämlich eine Alternative. Wenn Sie feststellen, da ist irgendwo ein Fehler, aber weil Sie eine eigene Fehlerbehandlung drinhaben, können Sie leider nicht sagen, welcher Fehler genau wo auftritt. Denn eigene Fehlerbehandlung heißt, der Code springt irgendwo ans Ende Ihrer Prozedur und sagt nicht mehr, in welcher Zeile er ist. An dieser Stelle mache ich das entweder so, dass ich diese Zeile kommentiere, ein Hochkomma davor; wenn Sie die verlassen, wird sie grün, also ignoriert. Das birgt aber das Risiko, dass Sie das mit dem Speichern noch drinhaben und dann vergessen. Deswegen mache ich stattdessen so, hier einen Breakpoint drauf. Alles mit F5 laufen lassen und an dieser Stelle stoppt er, und zwar bevor er die Zeile ausführt. Und jetzt können Sie diesen gelben Pfeil nehmen, gedrückt halten, einen tiefer ziehen. Und wenn Sie jetzt F5 laufen lassen, dann ist diese On Error Resume Next Zeile nie ausgeführt worden. Es ist also noch die original Fehlerbehandlung an. Das sehe ich daran, wenn ich jetzt F5 mache, hat er wieder meinen ganz normalen ehrlichen Fehler. Und dieses Dialogfeld hat den unschlagbaren Vorteil, dass es eine Debuggen-Schaltfläche besitzt, wo ich dann per Klick in die Problemzeile komme. Und wenn ich eigene Fehlerbehandlungen habe, insbesondere eine von diesem Kaliber, dann weiß ich nicht, in welcher Zeile der Fehler aufgetreten ist, weil ich erst hier hinten merke, es gab einen Fehler. Meistens mache ich da eine Meldung für mich und die ist wenig hilfreich, die sagt nur, dieser Fehler ist aufgetreten, aber nicht in welcher Zeile. Und manchmal sind es Folgefehler. Hier sind beide Zeilen kritisch, wenn mit wksInfo ein Problem besteht. Aber vielleicht haben Sie erst in dieser Zeile die Fehlerbehandlung gemacht und vorher haben Sie ihn ignoriert. Also auch da sind Breakpoint hilfreich, weil Sie nämlich dann solche Zeilen vorübergehend überspringen können, ohne dass das dauerhaft in Ihrem Code gespeichert bleibt. Das sind die beiden wichtigsten aus diesem Menü an Tasten. Also F5, was gar nicht in diesem Menü drinsteht, um komplett laufen zu lassen. Oder F8, um es häppchenweise laufen zu lassen. Es gibt noch ein Umschalt+F8, Shift+F8. Das ist erst dann wichtig, wenn es Unterprogramme gibt. Ich finde mal schnell eins. Und der macht nichts anderes als: Debug.Print "hallo". Und das wird hier aufgerufen. Wenn ich jetzt also mit F8 hier durchgehe und an diese Stelle komme, würde er mit F8, das sehen Sie jetzt, hier unten reinwandern, die ganze Unterprozedur durcharbeiten und dann wieder oben hinter TesteDiese weitergehen. Das möchte ich nicht. Ich gehe mal mit F5 bis hierhin. Wenn ich jetzt hier das TesteDiese als Ganzes, in einem Schritt durcharbeiten will, ohne mir die Details anzugucken; Sie haben da häufig so verschachtelte Sachen; dann brauchen Sie genau dieses Umschalt+F8, Prozedurschritt; was bedeutet, wenn ich jetzt nicht F8, sondern Umschalt+F8 drücke, dann geht er in einem Schritt rüber und zeigt Ihnen nicht die langweiligen Details hier. Das ist häufig eine erhebliche Beschleunigung, wenn Sie wissen, das Unterprogramm läuft ja, muss ich gar nicht zugucken. Also F5, F8 und Umschalt+F8 sind die drei spannenden Teile, um dem Code beim Arbeiten zuzugucken.

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!