In diesem Tutorial erfahren Sie, wie Sie eine Unterprozedur aus einer anderen Unterprozedur in VBA aufrufen
Es ist sehr nützlich, Code zu schreiben, der wiederholt verwendet und von mehreren Unterprozeduren in Ihrem Projekt aufgerufen werden kann - es kann enorm viel Zeit sparen und den VBA-Code viel effizienter machen.
Ausführen einer Unterprozedur von einer anderen Unterprozedur
Betrachten Sie die folgenden 3 Unterverfahren:
1234 | UntertestRoutine()RunRoutine1RunRoutine2End Sub |
123 | UnterlaufRoutine1()MsgBox "Guten Morgen"End Sub |
123 | UnterlaufRoutine2()MsgBox "Das heutige Datum ist " & Format(Datum, "mm/tt/jjjj")End Sub |
Wenn wir die Unterprozedur - TestRoutine - ausführen, ruft sie RunRoutine1 und RunRoutine2 auf und es werden 2 Meldungsfelder angezeigt.

Die Anzahl der Unterprozeduren, die Sie von einer anderen Unterprozedur aus aufrufen können, ist nicht begrenzt.
Verwenden der Call-Anweisung
Sie können auch die Call-Anweisung vor dem Prozedurnamen verwenden, um die Lesbarkeit Ihres Codes zu verbessern. Es hat jedoch keinerlei Auswirkungen darauf, wie der Code ausgeführt oder gespeichert wird.
1234 | UntertestRoutine()RunRoutine1 aufrufenRunRoutine2 aufrufenEnd Sub |

Aufruf eines Subs mit Argumenten
Es ist auch möglich, ein Sub mit Argumenten aufzurufen
1234 | UntertestRoutine()RunRoutine1 ("Melanie")RunRoutine2 ("Haben Sie einen schönen Tag")End Sub |
123 | Sub RunRoutine1(strName als String)MsgBox "Guten Morgen" & " & strNameEnd Sub |
123 | Sub RunRoutine2(strMessage as String)MsgBox "Das heutige Datum ist " & Format(Datum, "mm/tt/jjjj") & VbCrLf & strMessageEnd Sub |

Aufruf eines Subs mit benannten Argumenten
Wenn Sie Ihre Argumente benennen, müssen Sie sie nicht in derselben Reihenfolge an Ihre Unterroutinen übergeben.
123 | UntertestRoutine()RunRoutine1 strGreeting:="Wie geht es dir?", strName:="Melanie"End Sub |
123 | Sub RunRoutine1(strName als String, strGreeting als StringMsgBox "Guten Morgen" & " & strName & vbCrLf & strGreetingEnd Sub |
