Benutzerdefinierte Funktion in VBA - Wie erstelle ich eine UDF? (Beispiele)

Benutzerdefinierte Excel VBA-Funktion (UDF)

Microsoft bietet uns viele integrierte Funktionen, um die Arbeit in Excel zu beschleunigen. Mit der VBA-Codierung können wir jedoch unsere eigenen Funktionen erstellen. Diese Funktionen werden technisch als „User-Defined Functions“ (UDF) bezeichnet. Sie werden in Excel VBA auch als "benutzerdefinierte Funktionen" bezeichnet.

Jede Formel, auf die über das Arbeitsblatt mit einem Code zugegriffen werden kann, wird als UDF bezeichnet. In einfachen Worten wird jede Formel, die nicht integriert ist, aber in Excel verfügbar ist, als benutzerdefinierte Funktionen bezeichnet.

Wie erstelle ich benutzerdefinierte Funktionen?

Obwohl UDF Teil unseres Moduls ist, sind sie nicht Teil unserer regulären Subroutine in VBA. Dies wird in VBA als Funktionsprozedur bezeichnet. Ähnlich wie wir die Makrocodierung mit dem Wort SUB starten, müssen wir dies mit dem Wort "Funktion" beginnen. Die Unterprozedur hat Start und Ende, ähnlich wie die Funktionsprozedur Start und Ende.

Beispiel 1 - Erstellen Sie eine einfache UDF-Summenfunktion

Wir werden unsere eigene SUM-Funktion in Excel erstellen, indem wir zwei Zahlen addieren.

  • Um die Codierung zu starten, starten Sie das Wort „Funktion“ in einem der Module.
  • So wie wir das Makro ähnlich benennen, müssen wir auch unserer Funktion einen Namen geben. Dieser Name wird als Formelname verwendet.

Im Gegensatz zur Unterroutine können wir nicht einfach die Eingabetaste drücken, um eine Prozedur zu erstellen, aber wir müssen hier Argumente erwähnen.

Schauen Sie sich beispielsweise die folgende Syntax der Arbeitsblattfunktion SUM an.

Nummer 1, Nummer 2 sind Argumente der Funktion SUM.

  • Ebenso müssen wir unsere Argumente erwähnen.

Hier habe ich die Argumente als "x als Ganzzahl" und "y als Ganzzahl" deklariert. Da wir einen numerischen Wert hinzufügen, müssen wir den Datentyp nur als numerischen Datentyp zuweisen.

Nach der Deklaration der Argumente habe ich auch den Rückgabetyp der Ganzzahl zugewiesen, da das Ergebnis der Funktion „OurSum“ ebenfalls ein numerischer Wert ist.

  • In der Funktion müssen wir nun die Formel erwähnen, die wir verwenden werden. Hier müssen wir zunächst die Funktion verwenden.

Wir haben erwähnt, dass der Formelname " OurSum " x und y hinzufügen sollte.

  • Ok, speichern Sie den Code und gehen Sie zum Arbeitsblatt.
  • Ich habe hier einige Zahlen eingegeben. Öffnen Sie das Gleichheitszeichen und geben Sie OurSum ein. Sie können den Formelnamen hier sehen.
  • Wie wir Zellen auswählen, wählen Sie auf ähnliche Weise zwei Zellen getrennt aus.
  • Drücken Sie nach Auswahl von zwei Zellen die Eingabetaste, um Ergebnisse zu erhalten.

Es funktioniert also genauso wie unsere reguläre SUMME-Funktion.

  • Ok, jetzt werde ich die Nummern ändern.
  • Jetzt werde ich wieder die Funktion anwenden, die wir erstellt haben.

Oh!!! Wir haben Fehlerwerte mit Ausnahme der ersten Zelle erhalten.

Sie müssen darüber nachdenken, warum wir einen Fehler erhalten haben.

Wenn Sie die Zellen A2 und B2 beobachten, haben wir die Werte 48170 und 21732. Da wir den Datentyp als Integer zugewiesen haben, kann er nicht mehr als 32767 enthalten. Aus diesem Grund haben wir den Excel-Fehler als #NUM! Erhalten.

Jetzt werde ich Zahlen hinzufügen, die kleiner als 32767 sind.

Im obigen Bild sind alle Zahlen ganzzahlige Zahlen, dh weniger als 32767.

In der ersten Zelle haben wir die Ergebnisse erhalten. Aber in der zweiten Zelle, dh der C2-Zelle, haben wir den Fehlerwert #VALUE! Erhalten.

Obwohl beide Zahlen kleiner als 32767 sind, haben wir immer noch den Fehler.

Dies liegt daran, dass wir das Endergebnis auch als Ganzzahl deklariert haben.

Wenn wir also 16000 und 17229 addieren, erhalten wir einen Wert wie 33229, der über dem Grenzwert für den ganzzahligen Datentyp von 32767 liegt. Das Endergebnis ist also ein Fehlerwert.

Beispiel 2 - Erstellen Sie eine Funktion zum Testen logischer Werte

Wir werden eine weitere Funktion erstellen, um die logischen Werte zu testen. Wir brauchen eine Funktion, die "Gut" zurückgibt, wenn die Zahl> = 60 ist, und wir brauchen das Ergebnis als "Schlecht", wenn die Zahl <= 50 ist.

Schritt 1: Starten Sie die Funktionsprozedur und geben Sie der Prozedur einen Namen.

Schritt 2: Geben Sie das Argument als TestScore als Ganzzahl an.

Schritt 3: Unser Endergebnis sollte entweder "Gut" oder "Schlecht" sein, daher sollte das Ergebnis in String sein.

Schritt 4: Zuerst müssen wir testen, ob die Punktzahl> = 60 ist oder nicht. Verwenden Sie zum Testen die IF-Bedingung.

Schritt 5: Wenn das Testergebnis> = 60 ist, benötigen wir die Funktion, um das Ergebnis als "Gut" zurückzugeben. Also TestResult = "Gut".

Schritt 6: Wenn das Testergebnis weniger als 60 beträgt, sollte das Funktionsergebnis "Schlecht" sein.

Ok, wir sind fertig.

  • Speichern Sie den Code und gehen Sie zum Arbeitsblatt.

Ich habe hier einige Zahlen als Testergebnis eingegeben.

  • Wenden Sie die von uns erstellte Funktion an, um Ergebnisse zu erzielen.
  • Wählen Sie die Zelle aus und drücken Sie die Eingabetaste.

Darum geht es bei UDF.

Interessante Beiträge...