Inhaltsverzeichnis
Platzieren Sie die MSGBox -Funktion an wichtigen Stellen
Bestimmen Sie die Stopppunkte und führen Sie Schritt für Schritt durch
Debugging mit dem Debug.Print -Betreiber
Rufen Sie eine Funktion aus einer Prozedur auf
Heim Themen excel Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen

Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen

Mar 27, 2025 am 11:38 AM

Da Sie bereits wissen, wie Sie UDFs erstellen (und ich hoffe, Sie haben auch versucht, sie in Ihrem Excel anzuwenden), lassen Sie uns etwas tiefer graben und sehen, was getan werden kann, falls Ihre Benutzerfunktion nicht funktioniert.

Um beim Erstellen einer benutzerdefinierten Funktion einige Probleme zu lösen, müssen Sie höchstwahrscheinlich ein Debuggen ausführen. Dann können Sie sicher sein, dass die Funktion korrekt funktioniert.

Wir werden die folgenden Debugging -Techniken untersuchen:

Wenn Sie eine benutzerdefinierte Funktion erstellen, besteht immer die Möglichkeit, dass Sie einen Fehler machen. Benutzerdefinierte Funktionen sind normalerweise ziemlich komplex. Und sie beginnen nicht immer richtig zu arbeiten. Die Formel kann ein falsches Ergebnis oder den #Value zurückgeben! Fehler. Im Gegensatz zu Standard -Excel -Funktionen sehen Sie keine anderen Nachrichten.

Gibt es eine Möglichkeit, Schritt für Schritt eine benutzerdefinierte Funktion zu durchlaufen, um zu überprüfen, wie jede seiner Aussagen funktioniert? Sicher! Dafür wird Debugging verwendet.

Ich werde Ihnen verschiedene Möglichkeiten bieten, Ihre benutzerdefinierte Funktion zu debuggen, damit Sie die für Sie funktioniert.

Beispielsweise verwenden wir die benutzerdefinierte Funktion getMaxBet zwischen einem unserer vorherigen Artikel, die die maximale Zahl im angegebenen Wertebereich berechnen:

Function GetMaxBetween(rngCells As Range, MinNum, MaxNum) Dim NumRange As Range Dim vMax Dim arrNums() Dim i As Integer ReDim arrNums(rngCells.Count) For Each NumRange In rngCells vMax = NumRange Select Case vMax Case MinNum 0.01 To MaxNum - 0.01 arrNums(i) = vMax i = i 1 Case Sonst getMaxbetween = 0 End Select Nächstes Numrange getmaxbetween = Arbeitsblattfunktion.max (Arrnums) Endfunktion

Die Funktionsargumente sind der Bereich von Zellen, in dem Zahlen geschrieben werden, sowie die obere und untere Wertegrenze.

Platzieren Sie die MSGBox -Funktion an wichtigen Stellen

Um die Ausführung von Berechnungen zu überwachen, können Sie die Werte der wichtigsten Variablen auf dem Bildschirm an den richtigen Stellen anzeigen. Dies kann mit Popup-Dialogfeldern erfolgen.

MSGBox ist ein Dialogfeld, mit dem Sie dem Benutzer eine Nachricht anstellen können.

Die Syntax von MSGBox ähnelt anderen VBA -Funktionen:

MSGBox (Eingabeaufforderung [, Schaltflächen] [, Titel] [, Hilfefile, Kontext])

Eingabeaufforderung ist ein erforderliches Argument. Es enthält die Nachricht, die Sie im Dialogfeld sehen. Es kann auch verwendet werden, um die Werte einzelner Variablen anzuzeigen.

Alle anderen Argumente sind optional.

[ Schaltflächen ] - Bestimmt, welche Schaltflächen und Symbole in der MSGBox angezeigt werden. Wenn wir beispielsweise die Option VBokonly verwenden, wird nur die OK -Taste angezeigt. Selbst wenn Sie dieses Argument verpasst haben, wird diese Schaltfläche standardmäßig verwendet.

[ Titel ] - Hier können Sie den Titel des Nachrichtenfelds angeben.

Lassen Sie uns von Wörtern zum Üben wechseln und mit dem Debuggen beginnen. Um die Nachricht anzuzeigen, fügen Sie dem Code der GetMaxBet zwischen der benutzerdefinierten Funktion die folgende Zeile hinzu, bevor der Operator anfahrte :

Msgbox vmax ,, "count -" & amp; ich

Hier ist, was wir in das Ergebnis bekommen werden:

Funktion GetMaxbetween (rngcells als Bereich, Minnum, Maxnum) dim Numrange als Bereich dim Vmax dim Arnums () dim i als ganzzahlige Redim -Arrnums (rngcells.count) für jeden Numrange in rngcells vmax = numRange -selange case vmax case mnnum 0.01 bis mAxnum - 0.01 Arnums (i) i) vmax ilnum 0.01 bis mAxnum - 0.01 arrnums (i) i) vmax ilnum. Msgbox vmax ,, "count -" & amp; I CASE ENDE GetMaxBetween = 0 End SELECT Nächst

Mit der VMAX -Variablen im Dialogfeld sehen wir, welche Zahlen die Kriterien für die Auswahl erfüllen, damit wir die größten von ihnen auswählen können. Mit dem Ausdruck "Count -" & i In der Titelleiste geben wir an, wie viele Zahlen wir bereits ausgewählt haben, um den Maximalwert zu bestimmen. Der Zähler wird mit jedem neuen Wert erhöht.

Sobald wir unser UDF -Set haben, wenden wir die folgende Formel auf den Datumsbereich an:

= GetMaxBetween (A1:A6,10,50)

Nachdem die Eingabetaste gedrückt wurde, sehen Sie eine Nachricht wie im folgenden Screenshot:

Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen

Dies ist die erste Zahl im Bereich A1: A6, der den Kriterien entspricht: mehr als 10, aber weniger als 50.

Nachdem Sie auf OK geklickt haben, wird mit der Nummer 14 eine zweite Nachricht angezeigt. Der Rest der Zahlen stimmt nicht mit den Auswahlkriterien überein. Daher verlässt und gibt die Funktion den größten der beiden Werte zurück, 17.

Die MSGBox -Funktion kann an den wichtigsten Stellen in Ihrer benutzerdefinierten Funktion verwendet werden, um zu steuern, wie sich die Werte einzelner Variablen ändern. Nachrichtenfelder können sehr nützlich sein, wenn Sie eine große Funktion und viel Berechnung haben. In diesem Fall können Sie leicht feststellen, in welchem ​​Teil des Code der Fehler auftritt.

Bestimmen Sie die Stopppunkte und führen Sie Schritt für Schritt durch

Sie können dem Code Ihrer Funktion Bruchpunkte hinzufügen, in dem die Codeausführung gestoppt wird. Sie können also Schritt für Schritt den Berechnungsprozess befolgen. Auf diese Weise können Sie sehen, wie sich die Werte der Variablen ändern.

Um einen Haltepunkt hinzuzufügen, legen Sie den Cursor in die Zeile, die die Anweisung enthält, in der Sie innehalten möchten. Klicken Sie dann mit der rechten Maustaste und wählen Sie Debug -> Umschalten des Breakpoint oder drücken Sie einfach F9 . Sie können auch den gewünschten Ort auf dem vertikalen Graubereich links vom Funktionscode klicken.

Wie Sie im Screenshot unten sehen können, erscheint ein roter Kreis. Die Codelinie, in der die Berechnung gestoppt wird, wird rot hervorgehoben.

Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen

Jetzt wird das VBA -Editorfenster geöffnet, wenn die Funktion ausgeführt wird. Der Cursor wird an dem Punkt positioniert, an dem Sie angehalten haben.

Wenn Sie Ihren Mauszeiger über eine der Variablen im Funktionscode schweben, können Sie den aktuellen Wert sehen:

Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen

Drücken Sie F5 , um die Berechnung fortzusetzen.

Notiz. Nach dem Haltepunkt können Sie den Fortschritt der Berechnungen Schritt für Schritt verfolgen. Wenn Sie die F8 -Taste drücken, wird nur eine nächste Zeile des VBA -Code ausgeführt. Die gelbe Linie mit einem Pfeil wird ebenfalls in die zuletzt ausgeführte Codeposition verschoben.

Da die Ausführung der Funktion erneut innehalten wird, können Sie die aktuellen Werte aller Variablen der Funktion mit dem Maus -Cursor anzeigen.

Die nächste Presse von F8 führt uns einen Schritt nach vorne. So können Sie F8 bis zum Ende der Berechnung drücken. Oder drücken Sie F5 , um die Berechnung bis zum nächsten Haltepunkt fortzusetzen.

Wenn ein Fehler auftritt, wird der Cursor an dem Punkt im Code gestoppt, an dem der Fehler aufgetreten ist. Und Sie werden auch eine Popup-Fehlermeldung sehen. Dies erleichtert es einfach, die Ursache des Problems zu bestimmen.

Die von Ihnen angegebenen Haltepunkte werden angewendet, bis Sie die Datei schließen. Wenn Sie es wieder eröffnen, müssen Sie sie erneut einstellen. Nicht die bequemste Methode, findest du nicht?

Dieses Problem kann jedoch gelöst werden. Fügen Sie eine Stop -Anweisung an den erforderlichen Punkten in den Funktionscode ein und Sie können die Programmausführung auf die gleiche Weise wie bei der Verwendung von Haltepunkten stoppen.

Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen

Wenn VBA auf eine Stop -Anweisung trifft, wird die Programmausführung eingestellt und auf Ihre Aktion warten. Überprüfen Sie die Werte der Variablen und drücken Sie dann F5 , um fortzufahren.

Oder drücken Sie F8 , um die Funktion schrittweise wie oben beschrieben zu erfüllen.

Die Stop -Anweisung ist Teil des Programms und wird daher nicht gelöscht, wie es bei einem Haltepunkt der Fall ist. Wenn Sie fertig sind, entfernen Sie es selbst. Oder verwandeln Sie es in einen Kommentar, indem Sie es mit einem einzigen Zitat (') vorgehen.

Debugging mit dem Debug.Print -Betreiber

Sie können den Debug.abrint in den Funktionscode am richtigen Ort platzieren. Dies ist nützlich, um die Werte von Variablen zu überprüfen, die sich zyklisch ändern.

Auf dem Screenshot unten sehen Sie ein Beispiel für die Leistung von Debug.Print.

Erfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen

Aussage Debug.print I, vmax druckt Werte und ihre Ordnungszahlen aus.

Im unmittelbaren Fenster sehen Sie zwei Zahlen (17 und 14) aus dem ausgewählten Bereich, was den festgelegten Grenzen entspricht und unter denen das Maximum ausgewählt wird. Die Ziffern 1 und 2 bedeuten, dass die Funktion 2 Zyklen abgeschlossen hat, in denen die Zahlen ausgewählt wurden. Wir sehen die Werte der wichtigsten Variablen, wie zuvor mit MSGBox . Dies hat die Funktion jedoch nicht gestoppt.

Rufen Sie eine Funktion aus einer Prozedur auf

Sie können eine benutzerdefinierte Funktion nicht aus einer Zelle im Arbeitsblatt, sondern aus einer Prozedur aufrufen. In diesem Fall werden alle Fehler im Visual Basic Editor -Fenster angezeigt.

Hier erfahren Sie, wie Sie die benutzerdefinierte Funktion getMaxberween von einem Prozedur aufrufen können:

Sub test () dim x x = getMaxbetween (Bereich ( "A1: a6" ), 10, 50) msgbox (x) End -Sub

Positionieren Sie den Cursor überall im Code und drücken Sie F5 . Wenn in der Funktion keinen Fehler vorliegt, wird ein Popup-Fenster mit dem Berechnungsergebnis angezeigt.

Bei einem Fehler sehen Sie eine entsprechende Nachricht im VBA -Editor. Die Berechnung wird gestoppt und die Codelinie, in der der Fehler aufgetreten ist, wird gelb hervorgehoben. Sie können leicht erkennen, wo und warum der Fehler aufgetreten ist.

Das ist alles. Jetzt haben Sie Ihr eigenes Add-In erstellt, es in Excel hinzugefügt und können das UDF darin verwenden. Wenn Sie mehr UDFs verwenden möchten, schreiben Sie einfach den Code im Add-In-Modul im VBA-Editor und speichern Sie ihn.

Das war's für heute. Wir haben verschiedene Möglichkeiten erfasst, um benutzerdefinierte Funktionen zu debuggen und zu lernen, wie Sie sie in Ihrem Arbeitsbuch verwenden. Wir hoffen wirklich, dass Sie diese Richtlinien hilfreich finden. Wenn Sie Fragen haben, schreiben Sie in die Kommentare zu diesem Artikel.

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie benutzerdefinierte Funktionen in Excel debuggen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1668
14
PHP-Tutorial
1273
29
C#-Tutorial
1255
24