Inhaltsverzeichnis
Da Sie bereits wissen, wie man UDFs erstellt (und hoffentlich auch schon ausprobiert haben, wie man sie in Excel anwendet), wollen wir nun ein wenig tiefer einsteigen und lernen, wie man benutzerdefinierte Funktionen in Excel verwendet und speichert.
Außerdem zeigen wir Ihnen, wie Sie Ihre Funktionen ganz einfach in einer Excel-Add-in-Datei speichern können, um sie später mit ein paar Klicks zu verwenden.
Wir werden also über Folgendes sprechen:
Verschiedene Möglichkeiten der Verwendung von UDF in Excel
Verwendung von UDFs in Arbeitsblättern
Sobald Sie sich vergewissert haben, dass Ihre UDFs korrekt funktionieren, können Sie sie in Excel-Formeln oder in VBA-Code verwenden.
Sie können benutzerdefinierte Funktionen in einer Excel-Arbeitsmappe auf dieselbe Weise anwenden wie reguläre Funktionen, indem Sie beispielsweise die folgende Formel in eine Zelle schreiben:
= GetMaxBetween(A1:A6,10,50)
UDF kann in Kombination mit regulären Funktionen verwendet werden, z. B. um dem berechneten Maximalwert Text hinzuzufügen:
= CONCATENATE("Maximalwert zwischen 10 und 50 ist ", GetMaxBetween(A1: A6,10,50))
Das Ergebnis sehen Sie auf dem nachstehenden Bildschirmfoto:
Sie können die Zahl finden, die sowohl das Maximum ist als auch im Bereich von 10 bis 50 liegt.
Prüfen wir eine andere Formel:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), die
Die benutzerdefinierte Funktion GetMaxBetween prüft den Bereich B2:B9 und findet den Maximalwert zwischen 10 und 50. Anschließend wird mit INDEX + MATCH der Produktname ermittelt, der diesem Maximalwert entspricht:
Wie Sie sehen, unterscheidet sich die Verwendung von benutzerdefinierten Funktionen nicht allzu sehr von normalen Excel-Funktionen.
Beachten Sie dabei, dass eine benutzerdefinierte Funktion nur einen Wert zurückgeben, aber keine anderen Aktionen ausführen kann. Lesen Sie mehr über die Einschränkungen von benutzerdefinierten Funktionen.
Verwendung von UDF in VBA-Prozeduren und -Funktionen
UDFs können auch in VBA-Makros verwendet werden. Unten sehen Sie den Makrocode, der in der Spalte, die die aktive Zelle enthält, nach dem Höchstwert im Bereich von 10 bis 50 sucht.
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range(Cells(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells, 10, 50) i = Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End With End SubDer Makrocode enthält die benutzerdefinierte Funktion
GetMaxBetween(.Cells, 10, 50)
Es findet den Maximalwert in der aktiven Spalte. Dieser Wert wird dann hervorgehoben. Das Ergebnis des Makros sehen Sie auf dem folgenden Screenshot.
Eine benutzerdefinierte Funktion kann auch innerhalb einer anderen benutzerdefinierten Funktion verwendet werden. In einem früheren Blog haben wir das Problem der Umwandlung einer Zahl in Text mit der benutzerdefinierten Funktion namens SpellNumber .
Mit seiner Hilfe können wir den Maximalwert aus dem Bereich ermitteln und ihn sofort als Text notieren.
Zu diesem Zweck erstellen wir eine neue benutzerdefinierte Funktion, in der wir die Funktionen GetMaxBetween und SpellNumber die uns bereits vertraut sind.
Function SpellGetMaxBetween(rngCells As Range, MinNum, MaxNum) SpellGetMaxBetween = SpellNumber(GetMaxBetween (rngCells, MinNum, MaxNum)) End FunctionWie Sie sehen können, ist die GetMaxBetween Funktion ist ein Argument für eine andere benutzerdefinierte Funktion, SpellNumber Sie definiert den Höchstwert, wie wir es schon oft getan haben. Diese Zahl wird dann in Text umgewandelt.
In der obigen Abbildung können Sie sehen, wie die SpellGetMaxBetween findet die maximale Zahl zwischen 100 und 500 und wandelt sie dann in Text um.
Aufrufen von UDF aus anderen Arbeitsmappen
Wenn Sie eine UDF in Ihrer Arbeitsmappe erstellt haben, bedeutet dies leider nicht, dass Sie keinerlei Probleme haben werden.
Meiner Erfahrung nach erstellen die meisten Benutzer früher oder später ihre persönliche Sammlung von Makros und benutzerdefinierten Funktionen, um einzelne Prozesse und Berechnungen zu automatisieren. Und hier stellt sich das Problem - der Code der benutzerdefinierten Funktionen in Visual Basic muss irgendwo gespeichert werden, um später bei der Arbeit verwendet zu werden.
Um die benutzerdefinierte Funktion anwenden zu können, muss die Arbeitsmappe, in der Sie die Funktion gespeichert haben, in Excel geöffnet sein. Ist dies nicht der Fall, erhalten Sie beim Versuch, die Funktion zu verwenden, die Fehlermeldung #NAME! Dieser Fehler zeigt an, dass Excel den Namen der Funktion, die Sie in der Formel verwenden möchten, nicht kennt.
Schauen wir uns nun an, wie Sie die von Ihnen erstellten benutzerdefinierten Funktionen verwenden können.
Methode 1: Fügen Sie den Namen der Arbeitsmappe in die Funktion ein.
Sie können den Namen der Arbeitsmappe, in der sie sich befindet, vor dem Namen der Funktion angeben. Wenn Sie beispielsweise eine benutzerdefinierte Funktion gespeichert haben GetMaxBetween() in einer Arbeitsmappe namens Meine_Funktionen.xlsm dann müssen Sie die folgende Formel eingeben:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
Methode 2: Speichern aller UDFs in einer gemeinsamen Datei
Speichern Sie alle benutzerdefinierten Funktionen in einer speziellen Arbeitsmappe (z. B., Meine_Funktionen.xlsm ) und kopieren Sie die gewünschte Funktion daraus gegebenenfalls in die aktuelle Arbeitsmappe.
Jedes Mal, wenn Sie eine neue benutzerdefinierte Funktion erstellen, müssen Sie ihren Code in der Arbeitsmappe duplizieren, in der Sie sie verwenden wollen. Bei dieser Methode können mehrere Unannehmlichkeiten auftreten:
- Wenn es viele Arbeitsdateien gibt und die Funktion überall benötigt wird, dann muss der Code in jedes Buch kopiert werden.
- Denken Sie daran, die Arbeitsmappe in einem makrofähigen Format (.xlsm oder .xlsb) zu speichern.
- Beim Öffnen einer solchen Datei zeigt der Makroschutz jedes Mal eine Warnung an, die bestätigt werden muss. Viele Benutzer erschrecken, wenn sie eine Warnung mit einem gelben Balken sehen, der sie auffordert, Makros zu aktivieren. Um diese Meldung zu vermeiden, müssen Sie den Excel-Schutz vollständig deaktivieren. Dies ist jedoch nicht immer korrekt und sicher.
Ich denke, Sie werden mir zustimmen, dass es nicht die beste Lösung ist, ständig eine Datei zu öffnen und den Code der benutzerdefinierten Funktionen daraus zu kopieren oder den Namen dieser Datei in eine Formel zu schreiben.
Methode 3: Erstellen einer Excel-Add-In-Datei
Meiner Meinung nach ist es am besten, häufig verwendete benutzerdefinierte Funktionen in einer Excel-Add-in-Datei zu speichern. Vorteile der Verwendung des Add-in:
- Sie müssen das Add-In nur einmal mit Excel verbinden, danach können Sie seine Prozeduren und Funktionen in jeder Datei auf diesem Computer verwenden. Sie brauchen Ihre Arbeitsmappen nicht in den Formaten .xlsm und .xlsb zu speichern, da der Quellcode nicht in ihnen, sondern in der Add-In-Datei gespeichert wird.
- Sie werden nicht mehr durch den Makroschutz belästigt, da Add-Ins immer auf vertrauenswürdige Quellen verweisen.
- Ein Add-In ist eine separate Datei, die sich leicht von einem Computer zum anderen übertragen und mit Kollegen teilen lässt.
Wir werden später mehr über die Erstellung und Verwendung eines Add-Ins sprechen.
Verwendung von Add-Ins zum Speichern benutzerdefinierter Funktionen
Wie erstelle ich mein eigenes Add-In? Gehen wir diesen Prozess Schritt für Schritt durch.
Schritt 1: Erstellen Sie die Add-In-Datei
Öffnen Sie Microsoft Excel, erstellen Sie eine neue Arbeitsmappe und speichern Sie sie unter einem beliebigen Namen (z. B. Meine_Funktionen) im Add-in-Format. Verwenden Sie dazu das Menü Datei - Speichern unter oder die Taste F12. Achten Sie darauf, dass Sie den Dateityp angeben Excel-Zusatzmodul :
Ihr Add-In hat die Erweiterung .xlam.
Tipp: Bitte beachten Sie, dass Excel Add-Ins standardmäßig im Verzeichnis C:\Benutzer\[Ihr_Name]\AppData\Roaming\Microsoft\AddIns Ich empfehle Ihnen, den Standardspeicherort zu akzeptieren. Wenn Sie möchten, können Sie auch einen anderen Ordner angeben. Dann müssen Sie jedoch beim Verbinden des Add-Ins den neuen Speicherort manuell suchen und angeben. Wenn Sie es im Standardordner speichern, müssen Sie nicht nach dem Add-In auf Ihrem Computer suchen. Excel wird es automatisch auflisten.
Schritt 2: Verbinden Sie die Add-In-Datei
Nun muss das von uns erstellte Add-In mit Excel verbunden werden, damit es beim Programmstart automatisch geladen wird. Verwenden Sie dazu das Menü Datei - Optionen - Add-Ins Vergewissern Sie sich Excel-Zusatzmodule ausgewählt ist, in der Verwalten Sie Klicken Sie auf das Feld Weiter In dem daraufhin erscheinenden Fenster markieren Sie unser Add-In My_Functions. Wenn es nicht in der Liste erscheint, klicken Sie auf die Schaltfläche durchsuchen und navigieren Sie zu dem Ort, an dem sich Ihre Add-In-Datei befindet.
Wenn Sie ein Add-In verwenden, um benutzerdefinierte Funktionen zu speichern, gibt es eine einfache Regel zu befolgen: Wenn Sie die Arbeitsmappe an eine andere Person übertragen, stellen Sie sicher, dass Sie auch eine Kopie des Add-Ins übertragen, das die gewünschten Funktionen enthält. Sie sollten es auf dieselbe Weise verbinden, wie Sie es jetzt getan haben.
Schritt 3: Hinzufügen von benutzerdefinierten Funktionen und Makros zum Add-In
Um neue UDFs hinzuzufügen, öffnen Sie den Visual Basic Editor, indem Sie die Tastenkombination Alt + F11 drücken. Dann können Sie neue Module mit VBA-Code hinzufügen, wie in meinem Tutorial UDFs erstellen beschrieben.
Wählen Sie Ihre Add-in-Datei ( Meine_Finktionen.xlam ) im VBAProject-Fenster. Verwenden Sie die Einsatz - Modul um ein benutzerdefiniertes Modul hinzuzufügen, in das Sie benutzerdefinierte Funktionen schreiben müssen.
Sie können den Code einer benutzerdefinierten Funktion entweder manuell eingeben oder ihn von irgendwoher kopieren.
Das war's. Jetzt haben Sie Ihr eigenes Add-in erstellt, es zu Excel hinzugefügt und können die UDF darin verwenden. Wenn Sie weitere UDFs verwenden möchten, schreiben Sie den Code einfach im Add-in-Modul im VBA-Editor und speichern Sie ihn.
Das war's für heute. Wir haben gelernt, wie Sie benutzerdefinierte Funktionen in Ihrer Arbeitsmappe verwenden können. Wir hoffen, dass Sie diese Richtlinien hilfreich finden. Wenn Sie Fragen haben, schreiben Sie in die Kommentare zu diesem Artikel.