Inhalt
Obwohl Excel viele, wahrscheinlich Hunderte von integrierten Funktionen wie SUM, VLOOKUP, LEFT usw. enthält, stellen Sie häufig fest, dass Sie eine Funktion benötigen, die nicht vorhanden ist, wenn Sie Excel für kompliziertere Aufgaben verwenden. Mach dir keine Sorgen, es ist nicht alles verloren; Sie müssen lediglich die gewünschte Funktion erstellen.
Schritte
- Erstellen Sie eine neue Arbeitsmappe oder öffnen Sie die Arbeitsmappe, in der Sie Ihre neu erstellte benutzerdefinierte Funktion (FDU) verwenden möchten.
-
Öffnen Sie den Visual Basic-Editor Dies ist in Microsoft Excel integriert, indem Sie zu Extras-> Makro-> Visual Basic-Editor gehen (oder Alt + F11 drücken). -
Fügen Sie ein neues Modul hinzu Klicken Sie auf die angegebene Schaltfläche, um zu Ihrer Arbeitsmappe zu gelangen. Sie können die benutzerdefinierte Funktion im Arbeitsblatt selbst erstellen, ohne ein neues Modul hinzuzufügen. Dies verhindert jedoch, dass Sie sie in anderen Arbeitsblättern in derselben Arbeitsmappe verwenden können. -
Erstellen Sie den "Header" oder "Prototyp" Ihrer Funktion. Sie müssen die folgende Struktur haben: öffentliche Funktion TheNameOfYourFunction (param1 als Typ1, param2 als Typ2) als returnType Es können beliebig viele Parameter vorhanden sein, und ihr Typ kann einer der grundlegenden Datentypen oder Excel-Objekttypen wie Range sein. Sie können sich Parameter als die "Operanden" vorstellen, auf die Ihre Funktion einwirkt. Wenn Sie beispielsweise SIN (45) sagen, um den Sinus von 45 Grad zu berechnen, wird 45 als Parameter verwendet. Anschließend verwendet Ihr Funktionscode diesen Wert, um eine Berechnung durchzuführen und das Ergebnis anzuzeigen. - Fügen Sie den Funktionscode hinzu und stellen Sie Folgendes sicher: 1) Verwenden Sie die von den Parametern bereitgestellten Werte. 2) das Ergebnis dem Funktionsnamen zuordnen; und 3) Schließen Sie die Funktion mit "Endfunktion". Das Erlernen des Programmierens in VBA oder einer anderen Sprache kann einige Zeit dauern und erfordert ein detailliertes Tutorial.Funktionen haben jedoch häufig kleine Codeblöcke und verwenden nur wenige Sprachressourcen. Die nützlichsten Elemente der VBA-Sprache sind:
- Der Block WennHiermit können Sie einen Teil des Codes nur ausführen, wenn eine Bedingung erfüllt ist. Zum Beispiel:
Öffentliche Funktion CourseResult (Raster als Ganzzahl) als Zeichenfolge
Wenn Note> = 5 Dann
CourseResult = "Genehmigt"
Sonst
CourseResult = "Abgelehnt"
End If
Endfunktion
Beachten Sie die Elemente in einem Codeblock Wenn:IF-Bedingung THEN-Code ELSE-Code END IF. Das Schlüsselwort Sonst zusammen mit dem zweiten Teil des Codes sind optional.
- Der Block Von, der einen Code ausführt Während (während) oder Bis (bis) eine Bedingung erfüllt ist. Zum Beispiel:
Öffentliche Funktion IsPrime (Wert als Ganzzahl) als Boolescher Wert
Dim i As Integer
i = 2
IsPrime = True
Von
Wenn Wert / i = Int (Wert / i) Dann
IsPrime = False
End If
i = i + 1
Schleife, während i <Wert und IsPrime = True
Endfunktion
Schauen Sie sich die Elemente noch einmal an:Code LOOP WHILE / UNTIL Bedingung. Beachten Sie auch die zweite Zeile, in der eine Variable "deklariert" ist. Sie können Ihrem Code Variablen hinzufügen, damit Sie sie später verwenden können. Variablen fungieren als temporäre Werte innerhalb des Codes. Betrachten Sie abschließend die Funktionsdeklaration als BOOLEAN, einen Datentyp, der nur die Werte TRUE und FALSE zulässt. Diese Methode, um festzustellen, ob eine Zahl eine Primzahl ist, ist nicht ideal, aber ich lasse sie lieber dabei, um den Code leichter lesbar zu machen.
- Der Block Zum, der einen Code eine bestimmte Anzahl von Malen ausführt. Zum Beispiel:
Public Function Factorial (Wert als Ganzzahl) Solange
Ergebnis dimmen, solange
Dim i As Integer
Wenn Wert = 0 Dann
Ergebnis = 1
ElseIf value = 1 Dann
Ergebnis = 1
Sonst
Ergebnis = 1
Für i = 1 Zum Wert
Ergebnis = Ergebnis * i
Nächster
End If
Faktoriell = Ergebnis
Endfunktion
Schauen Sie sich die Elemente noch einmal an:FOR Variable = Untergrenze TO Obergrenze Code NEXT. Beachten Sie auch das Element Sonst in der Anweisung hinzugefügt WennHiermit können Sie weitere Optionen für den auszuführenden Code hinzufügen. Schauen Sie sich zum Schluss die Funktionsdeklaration und die Variable "result" als an Lange. Der Datentyp Lange erlaubt viel höhere Werte als "Integer".
Unten finden Sie den Code für eine Funktion, die Zahlen in Wörter konvertiert.
- Der Block WennHiermit können Sie einen Teil des Codes nur ausführen, wenn eine Bedingung erfüllt ist. Zum Beispiel:
- Gehen Sie zurück zu Ihrer Arbeitsmappe und verwenden Sie die Funktion, indem Sie den Inhalt einer Zelle mit a starten gleich gefolgt vom Namen Ihrer Rolle. Fügen Sie dem Funktionsnamen eine öffnende Klammer hinzu, deren Parameter durch getrennt sind Komma und eine letzte schließende Klammer. Zum Beispiel:= NumberToLetters (A4) Sie können Ihre benutzerdefinierte Formel auch verwenden, indem Sie in der Kategorie danach suchen Benutzerdefinierte im Assistenten, um die Formel einzugeben. Klicken Sie einfach auf die Schaltfläche Fx befindet sich links von der Formelleiste. Es gibt drei Arten von Parametern:
- Konstante Werte, die direkt in die Zellformel eingegeben werden. Zeichenfolgen müssen in diesem Fall in Anführungszeichen gesetzt werden.
- Zellreferenzen wie B6 oder Intervalle wie A1: C3 (Der Parameter muss vom Typ sein Brechen"")
- Andere Funktionen, die in Ihrer Funktion angeordnet sind (Ihre Funktion kann auch in anderen Funktionen gruppiert werden). Das heißt: = Faktoriell (MAX (D6: D8))
- Überprüfen Sie, ob das Ergebnis in Ordnung ist Stellen Sie nach mehrmaliger Verwendung der Funktion sicher, dass verschiedene Parameterwerte korrekt behandelt werden:
Tipps
- Wenn Sie einen Codeblock in eine Steuerstruktur wie If, For, Do usw. schreiben, denken Sie daran, den Block mit einigen Leerzeichen oder Tabulatoren einzurücken (der Einrückungsstil liegt bei Ihnen). Auf diese Weise wird Ihr Code leichter zu verstehen und es wird viel einfacher sein, Fehler zu erkennen und den Code zu verbessern.
- Excel verfügt über viele integrierte Funktionen, und die meisten Berechnungen können allein oder in Kombination durchgeführt werden. Durchsuchen Sie die Liste der verfügbaren Funktionen, bevor Sie Ihren eigenen Code starten. Die Ausführung kann schneller sein, wenn Sie integrierte Funktionen verwenden.
- Manchmal benötigt eine Funktion möglicherweise nicht alle Parameter, um ein Ergebnis zu berechnen. In diesem Fall können Sie das Schlüsselwort verwenden Optional vor dem Parameternamen im Funktionsheader. Du kannst den ... benutzen IsMissing (Parametername) innerhalb des Codes, um festzustellen, ob dem Parameter ein Wert zugewiesen wurde oder nicht.
- Wenn Sie nicht wissen, wie der Code für eine Funktion geschrieben wird, lesen Sie So schreiben Sie ein einfaches Makro in Microsoft Excel.
- Verwenden Sie einen Namen, der in Excel noch nicht als Funktionsname definiert ist. Andernfalls können Sie nur eine der Funktionen verwenden.
Warnungen
- Aus Sicherheitsgründen können einige Personen Makros deaktivieren. Lassen Sie Ihre Kollegen wissen, dass das von Ihnen gesendete Buch Makros enthält und vertrauenswürdig ist, da sie Ihre Computer nicht beschädigen.
- Die in diesem Artikel verwendeten Funktionen sind nicht der beste Weg, um die genannten Probleme zu lösen. Sie wurden nur verwendet, um die Verwendung von Sprachkontrollstrukturen zu erklären.
- VBA verfügt wie jede andere Sprache neben Do, If und For über mehrere andere Kontrollstrukturen. Diese wurden hier nur erläutert, um zu verdeutlichen, was im Quellcode der Funktion getan werden kann. Es gibt viele Online-Tutorials, in denen Sie VBA lernen können.