VBA - Einen Wert von einer Unterprozedur zurückgeben

In diesem Tutorial erfahren Sie, wie Sie einen Wert aus einer Unterprozedur in VBA zurückgeben.

Eine Unterprozedur ist nicht dafür ausgelegt, einen Wert zurückzugeben - dafür wird eine Funktionsprozedur verwendet. Es kann jedoch vorkommen, dass Sie Code in einer Unterprozedur ausführen, in der Sie einen Wert aus dieser Unterprozedur abrufen müssen. Verwenden Sie dazu Module oder globale Variablen oder verwenden Sie eine Unterprozedur, um ein Excel-Blatt zu füllen.

Verwenden von Variablen, um einen Wert zurückzugeben

Sie können Variablen auf Modulebene deklarieren. Dabei können diese Variablen überall innerhalb des Moduls verwendet werden und die Variablen behalten ihre Werte. Um eine Variable auf Modulebene zu deklarieren, deklarieren Sie einfach die Variable oben in Ihrem Codemodul:

123456789 Option explizitDim dblQty als DoubleUntertestA()'ruf den TestB-Sub anTestB aufrufen'Variablenwert im Modulfenster anzeigenDebug.Print dblQtyEnd Sub
1234 UntertestB()'die Modulvariable füllendblMenge = 900End Sub

Um diese zusammenzusetzen, würden wir TestA ausführen, das wiederum TestB aufrufen und uns den Wert 900 im unmittelbaren Fenster geben würde.

Dies würde nur innerhalb des Moduls funktionieren, da die Variable mit der Dim-Anweisung auf Modulebene deklariert wurde.

Globale Variable

Sie können die Variable auf globaler Ebene deklarieren, um sie in Ihren Projektmodulen zu verwenden.

Verwenden einer Unterprozedur zum Ausfüllen einer Excel-Tabelle

Die folgende Unterprozedur füllt den Bereich A1 bis C1 direkt in Ihrem Excel-Blatt aus und gibt so Werte an die Zellen aus der Unterprozedur zurück.

12345 Sub PopulateRange()Bereich("A1") = "Produkt"Bereich("B1") = "Menge"Range("C1") = "Kosten"End Sub

Sie können dann in einem anderen Verfahren auf diese Werte verweisen, indem Sie auf die Zellenwerte verweisen:

1234567 Sub RetrieveRange()Dim Product as String, Quant as long, Cost as doubleProdukt = Reichweite("A1")Quant = Bereich("B1")Kosten = Reichweite("C1")End Sub

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave