VBA – Einen Wert aus einer Unterprozedur (Sub) zurückgeben

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Dezember 7, 2022

In diesem Tutorial zeigen wir Ihnen, wie Sie einen Wert aus einer Unterprozedur in VBA zurückgeben können.

Eine Unterprozedur ist nicht dafür gedacht, einen Wert zurückzugeben. Dafür wird eine Funktionsprozedur verwendet. Es kann jedoch vorkommen, dass Sie einen Code in einer Unterprozedur ausführen und einen Wert aus dieser abrufen müssen. Hierfür können Sie Modul- oder globale Variablen verwenden oder eine Unterprozedur zum Ausfüllen eines Excel-Blatts nutzen.

Variablen verwenden, um einen Wert zurückzugeben

Sie können Variablen auf Modulebene deklarieren. Wenn Sie dies tun, können diese Variablen überall innerhalb des Moduls verwendet werden und sie behalten ihre Werte bei. Um eine Variable auf Modulebene zu deklarieren, deklarieren Sie diese einfach am Anfang Ihres Codemoduls:

Option Explicit
Dim dblMenge as Double

Sub TestA()
'Aufruf der Sub TestB
   Call TestB
'Den Variablenwert im Modulfenster anzeigen
   Debug.Print dblMenge
End Sub
Sub TestB()
'Die Modulvariable belegen
   dblMenge = 900
End Sub

Dazu führen wir TestA aus, die wiederum TestB aufruft und uns den Wert 900 im Direktfenster anzeigt.

wert aus unterprozedur modulvariable

Dies funktioniert nur innerhalb des Moduls, 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 allen Modulen Ihres Projekts zu verwenden.

wert aus unterprozedur globale variable

 

Verwendung einer Unterprozedur zum Auffüllen eines Excel-Blatts

Eine weitere Möglichkeit, auf die von einer Unterprozedur berechneten Werte zu verweisen, besteht darin, die Daten einfach in ein Excel-Blatt zu schreiben und dann in einer anderen Prozedur darauf zu verweisen.

Sub BereichAuffuellen()
   Range("A1") = "Produkt"
   Range("B1") = "Menge"
   Range("C1") = "Kosten"
End Sub

Sie können dann in einer anderen Prozedur durch Verweis auf die Zellenwerte auf diese Werte verweisen:

Sub BereichAbrufen()
   Dim Produkt As String, Menge As long, Kosten As double

   Produkt = Range("A1")
   Menge = Range("B1")
   Kosten = Range("C1")
End Sub
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples