VBA Call / Run Sub z innego podprogramu

Ten samouczek nauczy Cię, jak wywołać procedurę podrzędną z innej procedury podrzędnej w VBA

Bardzo przydatne jest pisanie kodu, który może być używany wielokrotnie i wywoływany z wielu podprocedur w projekcie - może to zaoszczędzić ogromną ilość czasu i sprawić, że kod VBA będzie znacznie bardziej wydajny.

Uruchamianie procedury Sub z innej procedury Sub

Rozważ 3 podprocedury poniżej:

1234 Podprogram testowy()RunRutyna1RunRutyna2Napis końcowy
123 Podrzędna procedura uruchomienia1()MsgBox "Dzień dobry"Napis końcowy
123 Podrzędna procedura uruchamiania2()MsgBox "Dzisiejsza data to " & Format(Date, "mm/dd/rrrr")Napis końcowy

Jeśli uruchomimy procedurę podrzędną - TestRoutine - wywoła ona RunRoutine1 i RunRoutine2 i pojawią się 2 okna wiadomości.

Nie ma ograniczeń co do liczby Procedur Podrzędnych, do których można zadzwonić z innej Procedury Podrzędnej.

Korzystanie z instrukcji połączenia

Możesz również użyć instrukcji Call przed nazwą procedury, aby kod był łatwiejszy do odczytania. Jednak nie ma to żadnego wpływu na sposób uruchamiania lub przechowywania kodu.

1234 Podprogram testowy()Zadzwoń do RunRoutine1Zadzwoń do RunRoutine2Napis końcowy

Wywołanie Sub z argumentami

Możliwe jest również wywołanie sub z argumentami

1234 Podprogram testowy()RunRoutine1 („Melanie”)RunRoutine2 („Miłego dnia”)Napis końcowy
123 Sub RunRoutine1 (strName jako ciąg)MsgBox "Dzień dobry " & " & strNameNapis końcowy
123 Sub RunRoutine2(strMessage as String )MsgBox "Dzisiejsza data to " & Format(Date, "mm/dd/rrrr") & VbCrLf & strMessageNapis końcowy

Wywołanie Sub z nazwanymi argumentami

Jeśli wymienisz swoje argumenty, nie musisz przekazywać ich w tej samej kolejności do swoich podprogramów.

123 Podprogram testowy()RunRoutine1 strGreeting:="Jak się masz?", strName:="Melanie"Napis końcowy
123 Sub RunRoutine1(strName as String, strGreeting as stringMsgBox "Dzień dobry " & " & strName & vbCrLf & strGreetingNapis końcowy

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave