Този урок ще ви научи как да извиквате подпроцедура от друга подпроцедура във VBA
Много е полезно да пишете код, който може да се използва многократно и да се извиква от множество подпроцедури във вашия проект - той може да спести огромно количество време и да направи VBA кода далеч по -ефективен.
Изпълнение на подпроцедура от друга подпроцедура
Помислете за 3 подпроцедури по -долу:
1234 | Sub TestRoutine ()RunRoutine1RunRoutine2End Sub |
123 | Sub RunRoutine1 ()MsgBox "Добро утро"End Sub |
123 | Sub RunRoutine2 ()MsgBox "Днешната дата е" & Формат (Дата, "mm/dd/yyyy")End Sub |
Ако изпълним подпроцедурата - TestRoutine - тя ще извика RunRoutine1 и RunRoutine2 и ще се появят 2 кутии за съобщения.

Няма ограничение за броя на подпроцедурите, които можете да извикате от друга подпроцедура.
Използване на декларацията за повикване
Можете също да използвате Изявлението за повикване пред името на процедурата, за да улесните четенето на кода. Това обаче няма никакъв ефект върху начина, по който кодът се изпълнява или съхранява.
1234 | Sub TestRoutine ()Обадете се на RunRoutine1Обадете се на RunRoutine2End Sub |

Обаждане на Sub с аргументи
Възможно е също така да се извика под с аргументи
1234 | Sub TestRoutine ()RunRoutine1 ("Мелани")RunRoutine2 ("Прекрасен ден")End Sub |
123 | Sub RunRoutine1 (strName като String)MsgBox "Добро утро" & "& strNameEnd Sub |
123 | Sub RunRoutine2 (strMessage като String)MsgBox "Днешната дата е" & Format (Date, "mm/dd/yyyy") & VbCrLf & strMessageEnd Sub |

Извикване на подводница с именовани аргументи
Ако назовавате аргументите си, не е нужно да ги предавате в същия ред на подпрограмите си.
123 | Sub TestRoutine ()RunRoutine1 strGreeting: = "Как си?", StrName: = "Мелани"End Sub |
123 | Sub RunRoutine1 (strName като String, strGreeting като низMsgBox "Добро утро" & "& strName & vbCrLf & strGreetingEnd Sub |
