Im Folgenden werden wir ein Programm in Excel VBA suchen, die eine benutzerdefinierte Funktion erstellt. Excel verfügt über eine große Sammlung von Funktionen. In den meisten Fällen sind diese Funktionen ausreichend, um den Job zu erledigen. Wenn nicht, können Sie Ihre eigene Funktion namens benutzerdefinierte Funktion oder benutzerdefinierte Excel-Funktion erstellen. Sie können eine benutzerdefinierte Funktion zugreifen wie jede andere Excel-Funktion.

Wir wollen eine Funktion namens SUMEVENNUMBERS erstellen, die die Summe der geraden Zahlen von einem zufällig ausgewählten Bereich findet.

Situation:

User Defined Function in Excel VBA

Benutzerdefinierte Funktionen müssen in ein Modul platziert werden.

  1. Öffnen Sie den Visual Basic-Editor und klicken Sie auf Einfügen, Modul.

  2. Nehmen Sie folgende Codezeile hinzu:

Function SUMEVENNUMBERS(rng As Range)

Der Name unserer Funktion ist SUMEVENNUMBERS. Der Teil zwischen den Klammern bedeutet, dass wir Excel VBA einen Bereich als Input geben. Wir nennen unser Angebot rng, aber Sie können einen beliebigen Namen verwenden.

  1. Als nächstes erklären wir, ein Range-Objekt und nennen es die Zelle.

Dim cell As Range
  1. Wir wollen jede Zelle in einem zufällig ausgewählten Bereich überprüfen (dieser Bereich kann beliebig groß sein). In Excel VBA können Sie die For Each Next-Schleife für diese. Fügen Sie die folgenden Codezeilen:

For Each cell In rng

Next cell

Hinweis: Zelle zufällig hier gewählt wird, können Sie einen beliebigen Namen verwenden.

  1. Als nächstes überprüfen wir für jeden Wert in diesem Bereich, ob es selbst oder nicht. Wir verwenden den Mod-Operator dafür. Der Mod-Operator gibt den Rest einer Division. So 7 mod 2 geben würde, 1. 7 von 2 (3 mal) geteilt, um einen Rest von 1. Having said dies zu geben, ist es leicht zu überprüfen, ob eine Zahl gerade oder nicht. Nur wenn der Rest einer Zahl durch 2 geteilt 0 ist, ist die Zahl sogar. 8 mod 2 sind 0, 8 um 2 genau 4 Mal geteilt ist und daher sogar 8 ist. Fügen Sie die folgende If-Anweisung an die For Each Next-Schleife.

If cell.Value Mod 2 = 0 Then

End If
  1. Nur wenn diese Aussage wahr ist, dass wir den Wert auf SUMEVENNUMBERS hinzuzufügen.

Fügen Sie die folgende Codezeile in der If-Anweisung.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value
  1. Vergessen nicht die Funktion zu Ende (außerhalb der Schleife).

End Function
  1. Nun können Sie diese Funktion nutzen, genau wie jede andere Excel-Funktion, die Summe der geraden Zahlen von einem zufällig ausgewählten Bereich zu finden.

Ergebnis:

User Defined Function Result

Gut gemacht! So einfach benutzerdefinierte Funktionen in Excel VBA sind.

Hinweis: Diese Funktion ist nur in dieser Arbeitsmappe zur Verfügung.