Wie erstelle ich eine benutzerdefinierte funktion in vba?

Einer der coolsten Vorteile des Erlernens von VBA ist wahrscheinlich die Möglichkeit, eigene Funktionen zu erstellen.

In Excel gibt es mehr als 450 Funktionen, von denen einige für Ihre tägliche Arbeit sehr nützlich sind. Excel bietet Ihnen jedoch die Möglichkeit, mithilfe von VBA eine benutzerdefinierte Funktion zu erstellen. Ja, du hast recht. USER‌ DEFINED-Funktion, abgekürzt als UDF, oder Sie können sie auch als benutzerdefinierte VBA-Funktion bezeichnen.

Und eines kann ich getrost sagen: Jeder angehende VBA-Benutzer möchte lernen, wie man eine benutzerdefinierte Funktion erstellt. Nicht du? Sagen Sie im Kommentarbereich „Ja“, wenn Sie zu den Personen gehören, die eine benutzerdefinierte Funktion erstellen möchten.

Ich freue mich, Ihnen mitteilen zu können, dass dies eine VOLLSTÄNDIGE ANLEITUNG ist, die Ihnen beim Erstellen Ihrer ersten benutzerdefinierten Funktion mit VBA hilft. Darüber hinaus habe ich einige Beispiele für BENUTZERDEFINIERTE FUNKTIONEN zur Verfügung gestellt, um Sie zu inspirieren.

  1. Hier verwende ich die Wörter benutzerdefinierte Funktion, benutzerdefinierte Funktion und UDF austauschbar. Bleiben Sie also bei mir, in den nächsten Minuten werden Sie ein VBA-Rockstar sein.
  2. Um Code für eine benutzerdefinierte VBA-Funktion zu erstellen, müssen Sie ihn schreiben. Sie können ihn nicht mit dem Makrorecorder aufzeichnen .

Warum Sie eine benutzerdefinierte Excel-Funktion erstellen sollten

Wie ich bereits sagte, gibt es in Excel viele integrierte Funktionen , mit denen Sie fast jedes Problem lösen und alle Arten von Berechnungen durchführen können. In bestimmten Situationen müssen Sie jedoch manchmal eine UDF erstellen.

Und unten habe ich einige Gründe oder Situationen aufgelistet, in denen Sie eine benutzerdefinierte Funktion verwenden sollten.

1. Wenn hierfür keine Funktion vorhanden ist

Dies ist einer der häufigsten Gründe, eine UDF mit VBA zu erstellen, denn manchmal muss man etwas berechnen und es gibt dafür keine spezielle Funktion. Ich kann Ihnen ein Beispiel für das Zählen von Wörtern aus einer Zelle geben und dafür habe ich herausgefunden, dass eine UDF eine perfekte Lösung sein kann.

Zählen Sie das Wort udf, um zu wissen, warum das Erstellen einer benutzerdefinierten Funktion wichtig ist

2. Ersetzen Sie eine komplexe Formel

Wenn Sie mit Formeln arbeiten, wissen Sie sicher, dass komplexe Formeln schwer zu lesen und für andere manchmal schwieriger zu verstehen sind. Daher kann eine benutzerdefinierte Funktion eine Lösung für dieses Problem sein, denn sobald Sie eine UDF erstellt haben, müssen Sie diese komplexe Formel nicht immer wieder schreiben.

Eine benutzerdefinierte Funktion kann Ihnen helfen, langwierige Berechnungen zu vermeiden

3. Wenn Sie die SUB-Routine nicht verwenden möchten

Obwohl Sie VBA-Code zum Durchführen einer Berechnung verwenden können, sind VBA-Codes nicht dynamisch*. Sie müssen diesen Code erneut ausführen, wenn Sie Ihre Berechnung aktualisieren möchten. Wenn Sie diesen Code jedoch in eine Funktion konvertieren, müssen Sie diesen Code nicht immer wieder ausführen, da Sie ihn einfach als Funktion einfügen können.

So erstellen Sie Ihre erste benutzerdefinierte Funktion in Excel

Okay, dann schau mal. Ich habe den gesamten Prozess in drei Schritte unterteilt:

  1. Deklarieren Sie Ihre Prozedur als Funktion
  2. Definieren Sie seine Argumente und ihren Datentyp
  3. Fügen Sie Code hinzu, um den gewünschten Wert zu berechnen

Aber lassen Sie mich Ihnen sagen:

Sie müssen eine Funktion erstellen, die den Tagesnamen aus einem Datumswert zurückgeben kann. Nun, wir haben eine Funktion, die die Nummer des Wochentags zurückgibt, aber nicht den Namen. Verstehst du was ich sage? Ja?

Führen Sie also die folgenden Schritte aus, um Ihre erste benutzerdefinierte Funktion zu erstellen:

  1. Öffnen Sie zunächst Ihren Visual Basic-Editor mit der Tastenkombination ALT + F11 oder gehen Sie zur Registerkarte „Entwickler“ und klicken Sie einfach auf die Schaltfläche „Visual Basic“.
    Öffnen Sie den VB-Editor, um Code für UDF zu schreiben
  2. Als nächstes müssen Sie ein Modul einfügen. Klicken Sie dazu mit der rechten Maustaste auf das VBA-Projektfenster, gehen Sie dann auf „Einfügen“ und klicken Sie dann auf „Modul“. (ACHTUNG: Sie müssen eine BENUTZERDEFINIERTE FUNKTION nur in Standardmodulen eingeben. Sowohl die Sheet- als auch die ThisWorkbook-Module sind spezielle Modultypen. Wenn Sie in diesen beiden Modulen eine UDF eingeben, erkennt Excel nicht, dass Sie eine UDF erstellen.) .
    Fügen Sie im VBA-Editor ein Modul hinzu, um eine UDF zu schreiben
  3. Der dritte Schritt besteht darin, einen Namen für die Funktion zu definieren, und hier verwende ich „myDayName“. Sie müssen also „Function mydayName“ schreiben. Warum Funktion vor Name? Wenn Sie eine VBA-Funktion erstellen, wird Excel durch die Verwendung des Wortes „Funktion“ angewiesen, diesen Code als Funktion zu behandeln (lesen Sie unbedingt vorher in der Nachricht den Umfang einer UDF). Schreiben Sie einen benutzerdefinierten VBA-Funktionsnamen
  4. Danach müssen Sie Argumente für Ihre Funktion definieren. Fügen Sie also führende Klammern ein und schreiben Sie „InputDate As Date“. Hier ist InputDate der Name des Arguments und Datum sein Datentyp. Es ist immer am besten, einen Datentyp für das Argument zu definieren.
    Nächster Schritt zum Hinzufügen eines Arguments zur benutzerdefinierten Funktion
  5. Schließen Sie nun die Klammern und schreiben Sie „As String“. Hier definieren Sie den Datentyp des von der Funktion zurückgegebenen Ergebnisses und da Sie möchten, dass der Name des Tages ein Text ist, muss sein Datentyp „String“ sein. Wenn das Ergebnis etwas anderes als eine Zeichenfolge sein soll, stellen Sie sicher, dass Sie den Datentyp entsprechend festlegen. (myDayName(InputDate As Date) As String-Funktion).
    Danach legen Sie den Datentyp für die UDF fest
  6. Drücken Sie am Ende die EINGABETASTE. An diesem Punkt sind Ihr Funktionsname, sein Argument, der Argumentdatentyp und der Funktionsdatentyp festgelegt und Sie haben in Ihrem Modul etwa Folgendes:
    Benutzerdefinierte VBA-Funktion nach dem Festlegen von Namensargumenten
  7. Jetzt müssen Sie in „Funktion“ und „Endfunktion“ die Berechnung oder die Funktionsweise dieser UDF definieren. In Excel gibt es eine Arbeitsblattfunktion namens „Text“, die wir hier verwenden. Und dazu müssen Sie den folgenden Code schreiben und mit diesem Code den Wert definieren, der von der Funktion zurückgegeben werden soll. myDayName = WorksheetFunction.Text(InputDate, „dddddd“)
    Nachdem Sie den Code geschrieben haben, der in der benutzerdefinierten VBA-Funktion verwendet werden soll
  8. Schließen Sie nun Ihren VB-Editor, gehen Sie zurück zum Arbeitsblatt und geben Sie in Zelle B2 „=myDayName(A2)“ ein. Drücken Sie die Eingabetaste, und Sie erhalten den Namen des Tages.
    Fügen Sie Ihre benutzerdefinierte VBA-Funktion in das Arbeitsblatt ein

Glückwunsch! Sie haben gerade Ihre erste benutzerdefinierte Funktion erstellt. Dies ist die Zeit wahrer Freude. Nicht wahr? Geben Sie „Freude“ in den Kommentarbereich ein.

Wie diese Funktion funktioniert und einen Wert in einer Zelle zurückgibt

Ihre erste benutzerdefinierte Funktion ist hier, aber der Punkt ist, dass Sie verstehen müssen, wie das funktioniert. Vereinfacht gesagt handelt es sich um VBA-Code, aber Sie haben ihn als Funktionsprozedur verwendet. Teilen wir es in drei Teile:

  • Sie geben es als Funktion in eine Zelle ein und geben den Eingabewert an.
  • Excel führt den Code hinter der Funktion aus und verwendet den Wert, auf den Sie verwiesen haben.
  • Sie haben das Ergebnis in der Zelle.

Sie müssen jedoch verstehen, wie diese Funktion von innen funktioniert. Deshalb habe ich den gesamten Prozess in drei verschiedene Teile unterteilt, in denen Sie sehen können, wie der Code, den Sie für die Funktion geschrieben haben, tatsächlich funktioniert.

working-user-defined-function

Da Sie „InputDate“ als Funktionsargument angegeben haben und wenn Sie die Funktion in die Zelle eingeben und ein Datum angeben, übernimmt VBA diesen Datumswert und stellt ihn der Textfunktion zur Verfügung, die Sie im Code verwendet haben.

Und in dem Beispiel, das ich oben erwähnt habe, ist das Datum in Zelle A1 der 01.01.2019.

Anschließend wandelt die TEXT-Funktion dieses Datum mithilfe des Formatcodes „dddddd“, den Sie bereits im Funktionscode erwähnt haben, in einen Tag um. Und dieser Tag, der von der TEXT-Funktion zurückgegeben wird, wird „myDayName“ zugewiesen.

Wenn das Ergebnis der TEXT-Funktion also Dienstag ist, wird dieser Wert „myDayName“ zugewiesen.

Und hier endet die Ausführung der Funktion. „myDayName“ ist der Funktionsname, daher ist jeder Wert, der „myDayName“ zugewiesen ist, der Ergebniswert und die Funktion, die Sie in das Arbeitsblatt eingefügt haben, gibt ihn in der Zelle zurück.

Wenn Sie Code für eine benutzerdefinierte Funktion schreiben, müssen Sie sicherstellen, dass der von diesem Code zurückgegebene Wert dem Funktionsnamen zugewiesen ist.

So verbessern Sie eine UDF endgültig

Nun wissen Sie, wie Sie eine benutzerdefinierte VBA-Funktion erstellen.

JETZT…

Es gibt eine Sache, die Sie sicherstellen müssen, um sicherzustellen, dass der Code, mit dem Sie arbeiten, gut genug ist, um alle Möglichkeiten zu bewältigen. Wenn Sie über die Funktion sprechen, die Sie gerade oben geschrieben haben, können Sie den Tagesnamen von einem Datum zurückgeben.

Ziel…

Was passiert, wenn der von Ihnen angegebene Wert kein Datum ist? Was ist, wenn die Zelle, auf die Sie sich bezogen haben, leer ist? Es gibt vielleicht noch andere Möglichkeiten, aber ich bin sicher, Sie verstehen, worum es geht.

RECHTS? Versuchen wir also, diese benutzerdefinierte Funktion zu verbessern, die möglicherweise die oben genannten Probleme beheben kann. GUT. Zuerst müssen Sie den Datentyp des Arguments ändern und Folgendes verwenden:

 InputDate As Variant

Damit kann Ihre benutzerdefinierte Funktion jede Art von Daten als Eingabe verwenden. Als nächstes müssen wir die VBA-IF-Anweisung verwenden, um InputDate auf bestimmte Bedingungen zu überprüfen. Die erste Bedingung ist, ob die Zelle leer ist oder nicht. Und dazu müssen Sie den folgenden Code verwenden:

 If InputDate = "" Then myDayName = ""

Dadurch wird die Funktion leer, wenn die Zelle, auf die Sie verwiesen haben, leer ist.

Ein Problem ist gelöst, lasst uns zum nächsten übergehen. Zusätzlich zu einem Datum können Sie eine Nummer oder einen Text haben. Dazu müssen Sie also auch eine Bedingung erstellen, die prüfen soll, ob der referenzierte Wert ein echtes Datum ist oder nicht.

Der Code wäre:

 If IsDate(InputDate) = False Then myDateName = ""

Hier verwende ich für beide Bedingungen ein Leerzeichen, damit Sie bei großen Datenmengen problemlos Werte herausfiltern können, bei denen der Eingabewert ungültig ist. Nach dem Hinzufügen der oben genannten Bedingungen würde der Code also wie folgt aussehen:

 Function myDayName(InputDate As Variant) As String If InputDate = "" Then myDayName = "" Else If IsDate(InputDate) = False Then myDateName = "" Else myDayName = WorksheetFunction.Text(InputDate, "dddddd") End If End If End Function

Und so funktioniert es jetzt: Ich bin sicher, dass Sie noch Änderungen an dieser Funktion vornehmen können, aber ich bin sicher, dass Sie meinen Standpunkt klar verstehen.

So verwenden Sie eine benutzerdefinierte VBA-Funktion

An diesem Punkt wissen Sie ungefähr, wie Sie eine VBA-Funktion in Excel erstellen. Aber sobald Sie es haben, müssen Sie wissen, wie Sie es verwenden können. Und in diesem Teil des Beitrags werde ich mit Ihnen teilen, wie und wo Sie es verwenden können. Also, lasst uns einsteigen.

1. Einfach in einer Tabellenkalkulation

Warum erstellen wir eine benutzerdefinierte Funktion? Einfach. Um es in der Tabelle zu verwenden. Sie können einfach eine UDF mit dem Gleichheitszeichen und dem Typnamen der Funktion in eine Tabelle eingeben und dann ihre Argumente angeben.

Fügen Sie eine benutzerdefinierte Funktion durch Eingabe in eine Tabelle ein

Sie können auch eine benutzerdefinierte Funktion aus der Funktionsbibliothek eingeben. Gehen Sie zur Registerkarte Formel ➜ Funktion einfügen ➜ Benutzerdefiniert.

Fügen Sie eine benutzerdefinierte Funktion aus einer Formel in ein Arbeitsblatt ein

Aus dieser Liste können Sie das UDF auswählen, das Sie einfügen möchten.

2. Verwendung anderer Unterprozeduren und Funktionen

Sie können eine Funktion auch innerhalb anderer Funktionen oder in einer „Sub“-Prozedur verwenden. Unten finden Sie einen VBA-Code, in dem Sie die Funktion verwendet haben, um den Tagesnamen für das aktuelle Datum abzurufen.

 Sub todayDay() MsgBox "Today is " & myDayName(Date) End Sub

Lesen Sie unbedingt weiter unten in diesem Artikel „Umfang einer UDF“, um mehr über die Verwendung einer Funktion in anderen Prozeduren zu erfahren.

3. Greifen Sie auf Funktionen aus einer anderen Arbeitsmappe zu

Wenn Sie eine UDF in einer Arbeitsmappe haben und diese in einer anderen Arbeitsmappe oder allen Arbeitsmappen verwenden möchten, erstellen Sie dazu ein Add-In. Befolgen Sie diese einfachen Schritte:

  • Zuerst müssen Sie die Datei (in der sich der benutzerdefinierte Funktionscode befindet) als Add-In speichern.
  • Gehen Sie dazu auf die Registerkarte Datei ➜ Speichern unter ➜ „Excel-Add-Ins (.xalm).
Speichern Sie die Datei als Add-In, um alle benutzerdefinierten Funktionen in anderen Workbooks zu verwenden
  • Doppelklicken Sie anschließend auf das Add-In und installieren Sie es.
Klicken Sie auf „Hinzufügen“, um alle benutzerdefinierten Funktionen in einer anderen Arbeitsmappe hinzuzufügen

Das ist es. Sie können jetzt alle Ihre VBA-Funktionen in jeder Arbeitsmappe verwenden.

Verschiedene Möglichkeiten zum Erstellen einer benutzerdefinierten VBA-Funktion [Fortgeschrittene]

An diesem Punkt wissen Sie, wie Sie eine benutzerdefinierte Funktion in VBA erstellen. Aber die Sache ist, dass, wenn wir integrierte Funktionen verwenden, diese unterschiedliche Arten von Argumenten haben.

In diesem Abschnitt dieses Handbuchs erfahren Sie, wie Sie eine UDF mit den verschiedenen Argumenttypen erstellen.

  • Ohne jegliches Argument
  • Mit einem einzigen Argument
  • Mit mehreren Argumenten
  • Array als Argument verwenden

… vorwärts gehen.

1. Ohne Argumente

Erinnern Sie sich an Funktionen wie JETZT und HEUTE, bei denen Sie kein Argument eingeben müssen?

Ja. Sie können eine benutzerdefinierte Funktion erstellen, bei der Sie keine Argumente eingeben müssen. Machen wir es anhand eines Beispiels:

Erstellen wir eine benutzerdefinierte Funktion, die den Speicherort der aktuellen Datei zurückgeben kann. Und hier ist der Code:

 Function myPath() As String Dim myLocation As String Dim myName As String myLocation = ActiveWorkbook.FullName myName = ActiveWorkbook.Name If myLocation = myName Then myPath = "File is not saved yet." Else myPath = myLocation End If End Function

Diese Funktion gibt den Pfad des Speicherorts zurück, an dem die aktuelle Datei gespeichert ist. Wenn die Arbeitsmappe nirgendwo gespeichert ist, wird die Meldung „Die Datei wurde noch nicht gespeichert“ angezeigt.

Erstellen Sie eine benutzerdefinierte Funktion ohne Argumente

Wenn Sie nun genau auf den Code für diese Funktion achten, müssen Sie kein Argument (in Klammern) definieren. Sie haben soeben den Datentyp für das Funktionsergebnis definiert.

Die Grundregel beim Erstellen einer Funktion ohne Argumente ist Code, in den Sie nichts eingeben müssen.

Einfach ausgedrückt: Der Wert, den Sie von der Funktion zurückerhalten möchten, sollte automatisch berechnet werden.

Und in dieser Funktion haben Sie dasselbe.

Dieser ActiveWorkbook.FullName gibt den Speicherort der Datei zurück und dieser ActiveWorkbook.Name gibt den Namen zurück. Sie müssen nichts eingeben.

2. Mit einem einzigen Argument

Wir haben diese Sache bereits behandelt, indem wir gelernt haben, wie man eine benutzerdefinierte Funktion erstellt. Aber lassen Sie uns etwas tiefer gehen und eine andere Funktion erstellen. Dies ist die Funktion, die ich vor einigen Monaten erstellt habe, um die URL aus einem Hyperlink zu extrahieren .

 Function giveMeURL(rng As Range) As String On Error Resume Next giveMeURL = rng.Hyperlinks(1).Address End Function

Jetzt haben Sie in dieser Funktion nur noch ein Argument.

einfache benutzerdefinierte Funktion zum Extrahieren einer URL aus einem Hyperlink

Wenn Sie dies in eine Zelle eingeben und dann die Zelle angeben, in der Sie einen Hyperlink haben, wird die URL des Hyperlinks zurückgegeben. In dieser Funktion wird nun die Hauptarbeit erledigt von:

 rng.Hyperlinks(1).Address

Aber der RNG ist das, was Sie angeben müssen. Sagen Sie im Kommentarbereich „Einfach“, wenn Sie das Erstellen einer UDF einfach finden.

3. Mit mehreren Argumenten

Normalerweise verfügen die meisten in Excel integrierten Funktionen über mehrere Argumente. Daher ist es wichtig, dass Sie lernen, wie Sie eine benutzerdefinierte Funktion mit mehreren Argumenten erstellen.

Nehmen wir ein Beispiel: Sie möchten bestimmte Buchstaben aus einer Textzeichenfolge entfernen und den Rest des Teils behalten.

Nun, Sie haben Funktionen wie RIGHT und LEN, die Sie in dieser benutzerdefinierten Funktion verwenden werden. Aber hier brauchen wir das nicht. Alles, was wir brauchen, ist eine benutzerdefinierte Funktion mit VBA.

Also, hier ist die Funktion:

 Function removeFirstC(rng As String, cnt As Long) As String removeFirstC = Right(rng, Len(rng) - cnt) End Functio

Okay, dann schauen Sie:

VBA-Funktion mit mehreren Argumenten

In dieser Funktion haben Sie zwei Argumente:

  • rng: In diesem Argument müssen Sie die Zelle angeben, aus der Sie das erste Zeichen eines Textes entfernen möchten.
  • cnt: Und im Argument müssen Sie die Anzahl der zu entfernenden Zeichen angeben (wenn Sie mehrere Zeichen aus dem Text entfernen möchten).

Wenn Sie es in eine Zelle eingeben, funktioniert es wie folgt:

3.1 Erstellen einer benutzerdefinierten Funktion mit optionalen und erforderlichen Argumenten

Wenn Sie an die Funktion denken, die wir gerade im obigen Beispiel erstellt haben und in der Sie zwei verschiedene Argumente haben, dann sind beide notwendig. Und wenn Sie eines davon verpassen, erhalten Sie eine Fehlermeldung wie diese.

Wenn Sie nun logisch denken, besteht die von uns erstellte Funktion darin, das erste Zeichen zu entfernen. Hier müssen Sie jedoch die Anzahl der zu entfernenden Zeichen angeben. Mein Punkt ist also, dass dieses Argument optional sein sollte und eines als Standard verwenden sollte.

Was denken Sie?

Sagen Sie im Kommentarbereich „Ja“, wenn Sie mir darin zustimmen.

Okay, dann schau mal. Um ein Argument optional zu machen, fügen Sie einfach „Optional“ davor hinzu. Genau so:

Wichtig ist jedoch, dass Ihr Code mit oder ohne den Wert dieses Arguments funktioniert. Unser neuer Code für dieselbe Funktion würde also wie folgt aussehen: Jetzt im Code, wenn Sie die Angabe des zweiten Arguments ignorieren.

4. Verwenden Sie Array als Argument

Es gibt einige integrierte Funktionen, die Array-Argumente annehmen können, und Sie können zu diesem Zweck auch Ihre benutzerdefinierte VBA-Funktion erstellen.

Lassen Sie uns dies anhand eines einfachen Beispiels tun, bei dem Sie eine Funktion erstellen müssen, mit der Sie die Werte eines Bereichs summieren, in dem Sie Zahlen und Text haben. Hier sind wir.

 Function addNumbers(CellRef As Range) Dim Cell As Range For Each Cell In CellRef If IsNumeric(Cell.Value) = True Then Result = Result + Cell.Value End If Next Cell addNumbers = Result End Function

Im obigen Code der Funktion haben wir einen Ganzzahlbereich A1:A10 anstelle eines einzelnen Werts oder einer Zellreferenz verwendet.

eine benutzerdefinierte VBA-Funktion zum Hinzufügen der Nummer einer Liste

Mithilfe der FOR EACH-Schleife wird jede Zelle im Bereich überprüft und der Wert summiert, wenn die Zelle eine Zahl enthält.

Der Umfang einer benutzerdefinierten Funktion

Vereinfacht ausgedrückt bedeutet der Umfang einer Funktion, ob sie von anderen Prozeduren aufgerufen werden kann oder nicht. Eine FDU kann zwei verschiedene Arten von Bereichen haben.

1. Publikum

Sie können Ihre benutzerdefinierte Funktion öffentlich machen, sodass Sie sie in allen Arbeitsblättern der Arbeitsmappe aufrufen können. Um eine Funktion öffentlich zu machen, verwenden Sie einfach das Wort „Öffentlich“ (siehe unten).

Fügen Sie pubilc vor dem Namen der benutzerdefinierten VBA-Funktion hinzu

Aber eine Funktion ist standardmäßig eine öffentliche Funktion, wenn Sie sie nicht privat machen. In allen Beispielen, die wir behandelt haben, sind sie alle öffentlich.

2. Privat

Wenn Sie eine Funktion privat machen, können Sie sie in Prozeduren im selben Modul verwenden.

Fügen Sie private vor dem Namen der benutzerdefinierten Funktion vba hinzu

Nehmen wir an, wenn Sie Ihre UDF in „Modul1“ haben, können Sie sie nur in den Prozeduren verwenden, die Sie in „Modul1“ haben. Und es wird nicht in der Funktionsliste des Arbeitsblatts angezeigt (wenn Sie das =-Zeichen verwenden und versuchen, den Namen einzugeben), aber Sie können es trotzdem verwenden, indem Sie seinen Namen eingeben und Argumente angeben.

Einschränkungen der benutzerdefinierten Funktion [UDF]

UDFs sind super nützlich. In bestimmten Situationen sind sie jedoch begrenzt. Hier sind ein paar Dinge, die Sie beachten und im Hinterkopf behalten sollten, wenn Sie eine benutzerdefinierte Funktion in VBA erstellen.

  • Mit einer benutzerdefinierten Funktion können Sie Zellen und Bereiche nicht bearbeiten, löschen oder formatieren.
  • Außerdem ist es nicht möglich, Arbeitsblätter zu einer Arbeitsmappe zu verschieben, umzubenennen, zu löschen oder hinzuzufügen.
  • Ändern Sie den Wert einer anderen Zelle.
  • Es kann auch keine Umgebungsoptionen ändern.

Gibt es einen Unterschied zwischen einer integrierten Funktion und einer benutzerdefinierten Funktion?

Ich bin froh, dass du gefragt hast. Um diese Frage zu beantworten, möchte ich einige Punkte mit Ihnen teilen, die meiner Meinung nach für Sie wichtig sind.

  1. Langsamer als integrierte Funktionen: Wenn Sie die Geschwindigkeit integrierter Funktionen und VBA-Funktionen vergleichen, werden Sie feststellen, dass erstere schnell ist. Der Grund dafür ist, dass die integrierten Funktionen in C++ oder FORTRAN geschrieben sind.
  2. Schwierigkeiten beim Teilen von Dateien: Wir teilen Dateien oft per E-Mail und über die Cloud. Wenn Sie eine der benutzerdefinierten Funktionen verwenden, müssen Sie diese Datei im „xlam“-Format freigeben, damit auch jemand anderes Ihre benutzerdefinierte Funktion verwenden kann.

Aber wie ich oben unter „Warum Sie eine benutzerdefinierte Excel-Funktion erstellen sollten“ gesagt habe, gibt es bestimmte Situationen, in denen Sie sich für eine benutzerdefinierte VBA-Funktion entscheiden können.

Abschluss

Das Erstellen einer benutzerdefinierten Funktion ist einfach. Sie müssen lediglich „Funktion“ vor dem Namen verwenden, um sie als Funktion zu definieren, Argumente hinzufügen, den Datentyp der Argumente festlegen und dann den Datentyp für den Rückgabewert festlegen.

Eine einfache Illustration, um zu verstehen, wie eine benutzerdefinierte Funktion erstellt wird

Fügen Sie am Ende Code hinzu, um den Wert zu berechnen, den Sie von der Funktion zurückerhalten möchten. In dieser Anleitung, die ich Ihnen heute zur Verfügung gestellt habe, erfahren Sie am einfachsten, wie Sie eine benutzerdefinierte Funktion in VBA erstellen, und ich bin sicher, dass Sie sie hilfreich fanden.

Aber jetzt sag mir eins.

UDFs sind nützlich, was denken Sie?

Bitte teilen Sie mir Ihre Meinung im Kommentarbereich mit. Ich würde gerne von Ihnen hören und vergessen Sie bitte nicht, diesen Beitrag mit Ihren Freunden zu teilen. Ich bin sicher, sie werden es zu schätzen wissen.

Verwandte Tutorials

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert