Inhaltsverzeichnis:
- Untersuchen des Codes
- Verwenden der MsgBox-Funktion
- Einfügen von Debuggen. Druckanweisungen
- Verwenden des VBA-Debuggers
Video: Visual Studio 2012 C++ - Schleifen/Zahlenvergleichen - Tutorial [German] [HD] [#006] 2024
Sie können Probleme mit Ihrem VBA-Code haben, aber wie finden Sie das Problem? Manchmal muss Ihr VBA-Code möglicherweise etwas debuggen. Lesen Sie weiter, um die vier gebräuchlichsten Methoden zum Debuggen von Excel VBA-Code zu finden:
-
Untersuchen des Codes
-
Einfügen von MsgBox-Funktionen an verschiedenen Stellen im Code
-
Einfügen von Debug. Druckanweisungen
-
Verwenden der integrierten Debugging-Tools von Excel
Untersuchen des Codes
Die einfachste Debugging-Technik besteht darin, den Code genau zu untersuchen, um festzustellen, ob Sie das Problem finden können. Diese Methode erfordert natürlich Wissen und Erfahrung. Mit anderen Worten, du musst wissen, was du tust. Wenn Sie Glück haben, springt der Fehler direkt auf, und Sie schlagen sich die Stirn und sagen: "Oh! "Wenn der Stirnschmerz nachlässt, können Sie das Problem beheben.
Beachten Sie die Verwendung der Wörter "Wenn Sie Glück haben. "Das ist, weil Sie oft Fehler entdecken, wenn Sie acht Stunden lang an Ihrem Programm gearbeitet haben, es ist 2 a. m. und du läufst auf Koffein und Willenskraft. In solchen Fällen haben Sie Glück, wenn Sie Ihren Code sogar sehen können, geschweige denn die Fehler finden. Seien Sie also nicht überrascht, wenn Sie Ihren Code einfach nicht genug untersuchen, um alle darin enthaltenen Fehler zu finden und zu löschen.
Verwenden der MsgBox-Funktion
Ein häufiges Problem vieler Programme besteht darin, dass eine oder mehrere Variablen nicht die erwarteten Werte annehmen. In solchen Fällen ist das Überwachen der Variable (n) während der Ausführung des Codes eine hilfreiche Debugging-Technik. Eine Möglichkeit, dies zu tun, besteht darin, temporäre MsgBox-Funktionen in Ihre Routine einzufügen. Wenn Sie beispielsweise eine Variable namens CellCount haben, können Sie die folgende Anweisung einfügen:
MsgBox CellCount
Wenn Sie die Routine ausführen, zeigt die Funktion MsgBox den Wert von CellCount an.
Es ist oft hilfreich, die Werte von zwei oder mehr Variablen in der Meldungsbox anzuzeigen. Die folgende Anweisung zeigt den aktuellen Wert zweier Variablen an: LoopIndex (1) und CellCount (72), getrennt durch ein Leerzeichen.
MsgBox LoopIndex & "" & CellCount
Beachten Sie, dass die beiden Variablen mit dem Verkettungsoperator (&) kombiniert werden und ein Leerzeichen zwischen ihnen eingefügt wird. Andernfalls werden die beiden Werte durch das Meldungsfeld zusammengefügt, sodass sie wie ein einzelner Wert aussehen. Sie können auch die integrierte Konstante vbNewLine anstelle des Leerzeichens verwenden. vbNewLine fügt einen Zeilenumbruch ein, der den Text in einer neuen Zeile anzeigt. Die folgende Anweisung zeigt drei Variablen an, jeweils in einer separaten Zeile:
Verwenden eines Meldungsfelds zum Anzeigen des Werts von drei Variablen.MsgBox LoopIndex & vbNewLine & CellCount & vbNewLine & MyVal
Diese Technik ist nicht auf die Überwachung von Variablen beschränkt. Sie können ein Nachrichtenfeld verwenden, um alle möglichen nützlichen Informationen anzuzeigen, während der Code ausgeführt wird. Wenn Ihr Code z. B. eine Reihe von Blättern durchläuft, zeigt die folgende Anweisung den Namen und den Typ des aktiven Blattes an:
MsgBox ActiveSheet. Name & "" & Typname (ActiveSheet)
Wenn Ihr Nachrichtenfeld etwas Unerwartetes anzeigt, drücken Sie Strg + Umbruch, und Sie sehen ein Dialogfeld, das Ihnen mitteilt, dass die Codeausführung unterbrochen wurde. Sie haben vier Auswahlmöglichkeiten:
-
Klicken Sie auf Schaltfläche Weiter. Der Code wird weiterhin ausgeführt.
-
Klicken Sie auf die Schaltfläche Ende. Die Ausführung wird beendet.
-
Klicken Sie auf die Debug-Schaltfläche. Die VBE geht in den Debug-Modus.
-
Klicken Sie auf die Schaltfläche Hilfe. Ein Hilfebildschirm zeigt an, dass Sie Strg + Pause gedrückt haben. Mit anderen Worten, es ist nicht sehr hilfreich.
Durch Drücken von Strg + Pause wird die Ausführung des Codes angehalten und Sie haben einige Auswahlmöglichkeiten.
Wenn Ihre Tastatur keine Break-Taste hat, drücken Sie Strg + ScrollLock.
Sie können MsgBox-Funktionen häufig verwenden, wenn Sie Ihren Code debuggen. Stellen Sie sicher, dass Sie sie entfernen, nachdem Sie das Problem identifiziert und behoben haben.
Einfügen von Debuggen. Druckanweisungen
Als Alternative zur Verwendung von MsgBox-Funktionen in Ihrem Code können Sie ein oder mehrere temporäre Debug-Befehle einfügen. Drucken Sie Anweisungen. Verwenden Sie diese Anweisungen, um den Wert einer oder mehrerer Variablen im Direktfenster zu drucken. Hier ist ein Beispiel, das die Werte von drei Variablen anzeigt:
Debuggen. Print LoopIndex, CellCount, MyVal
Beachten Sie, dass die Variablen durch Kommas getrennt sind. Sie können beliebig viele Variablen mit einem einzigen Debug anzeigen. Druckanweisung.
Debuggen. Print sendet eine Ausgabe an das Direktfenster, selbst wenn dieses Fenster ausgeblendet ist. Wenn das Direktfenster von VBE nicht sichtbar ist, drücken Sie Strg + G (oder wählen Sie Ansicht → Direktes Fenster). Hier ist eine Ausgabe im Direktfenster.
Ein Debuggen. Die Print-Anweisung sendet die Ausgabe an das Direktfenster.Im Gegensatz zu MsgBox Debuggen. Druckanweisungen halten Ihren Code nicht an. Sie müssen also das Direktfenster im Auge behalten, um zu sehen, was vor sich geht.
Nachdem Sie Ihren Code debuggt haben, müssen Sie alle Debug-Dateien entfernen. Drucken Sie Anweisungen. Selbst große Unternehmen wie Microsoft vergessen gelegentlich, ihr Debug zu entfernen. Drucken Sie Anweisungen. In früheren Versionen von Excel wurden jedes Mal, wenn das Analysis ToolPak-Add-In geöffnet wurde, im Direktfenster einige seltsame Meldungen angezeigt. Dieses Problem wurde schließlich in Excel 2007 behoben.
Verwenden des VBA-Debuggers
Die Excel-Designer sind mit dem Konzept von Fehlern vertraut. Daher enthält Excel eine Reihe von Debugging-Tools, mit denen Sie Probleme in Ihrem VBA-Code korrigieren können.