Der Unterschied zwischen einer Funktion und einem Unter in Excel VBA ist, dass eine Funktion einen Wert zurückgeben kann, während ein Unter nicht. Funktionen und U-Boote werden als Programmgröße steigt sehr nützlich.

Funktion

Wenn Sie Excel VBA wollen eine Aufgabe auszuführen, die ein Ergebnis zurückgibt, können Sie eine Funktion verwenden. Legen Sie eine Funktion in einem Modul (im Visual Basic-Editor auf Einfügen, Module). Zum Beispiel kann die Funktion mit dem Namen Bereich.

Function Area(x As Double, y As Double) As Double

Area = x  y

End Function

Erläuterung: Diese Funktion hat zwei Argumente (vom Typ Doppel) und ein Rückgabetyp (der Teil nach wie auch vom Typ Double). Sie können den Namen der Funktion (Area) in Ihrem Code verwenden, um anzuzeigen, die sich ergeben, Sie (hier x y) zurückkehren möchten.

Sie können nun auf diese Funktion beziehen (mit anderen Worten die Funktion aufrufen) von irgendwo anders in Ihrem Code, indem Sie einfach den Namen der Funktion und einen Wert für jedes Argument zu geben.

Legen Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Erläuterung: Die Funktion gibt einen Wert, so dass Sie zu ‚fangen‘ dieser Wert in Ihrem Code haben. Sie können eine andere Variable (z) für diese. Als Nächstes können Sie einen anderen Wert dieser Variablen aus (wenn Sie möchten). Schließlich zeigen den Wert eines MsgBox verwenden.

Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:

Excel VBA Function Result

Sub

Wenn Sie Excel VBA wollen einige Aktionen ausführen, können Sie eine Unter verwenden. Legen Sie einen Unter in ein Modul (in dem Visual Basic-Editor auf Einfügen, Module).

Zum Beispiel kann der Unter mit Namen Bereich.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Erläuterung: Dieser Unter hat zwei Argumente (vom Typ Double). Es hat keinen Rückgabetyp! Sie können auf diese Unter beziehen (das entsprechende Sub) von irgendwo anders in Ihrem Code, indem Sie einfach den Namen des Unter verwenden und einen Wert für jedes Argument zu geben.

Legen Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgende Codezeile:

Area 3, 5

Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:

Excel VBA Sub Result

Können Sie den Unterschied zwischen der Funktion und der Unter sehen? Die Funktion zurückgegebene Wert 15. Wir haben den Wert 2 zu diesem Ergebnis und zeigten das Endergebnis. Wenn wir die Unter genannt hatten wir keine mehr Kontrolle über das Ergebnis (15), weil ein Unter keinen Wert zurückgeben kann!