Denne vejledning lærer dig, hvordan du kalder en delprocedure inde fra en anden delprocedure i VBA
Det er meget nyttigt at skrive kode, der kan bruges gentagne gange og kaldes fra flere underprocedurer i dit projekt - det kan spare enorm tid og gøre VBA -koden langt mere effektiv.
Kørsel af en delprocedure fra en anden delprocedure
Overvej de 3 delprocedurer herunder:
1234 | Sub TestRoutine ()RunRoutine1RunRoutine2Afslut Sub |
123 | Sub RunRoutine1 ()MsgBox "Godmorgen"Afslut Sub |
123 | Sub RunRoutine2 ()MsgBox "Dagens dato er" og format (dato, "mm/dd/åååå")Afslut Sub |
Hvis vi kører delproceduren - TestRoutine - vil den kalde RunRoutine1 og RunRoutine2, og der vises 2 meddelelsesbokse.

Der er ingen grænse for antallet af delprocedurer, du kan ringe til fra en anden delprocedure.
Brug af opkaldserklæringen
Du kan også bruge opkaldsopgørelsen foran procedurnavnet for at gøre din kode lettere at læse. Det har imidlertid ingen som helst effekt på, hvordan koden køres eller gemmes.
1234 | Sub TestRoutine ()Ring til RunRoutine1Ring til RunRoutine2Afslut Sub |

Opkald til en sub med argumenter
Det er også muligt at kalde en sub med argumenter
1234 | Sub TestRoutine ()RunRoutine1 ("Melanie")RunRoutine2 ("Hav en dejlig dag")Afslut Sub |
123 | Sub RunRoutine1 (strName som streng)MsgBox "Good Morning" & "& strNameAfslut Sub |
123 | Sub RunRoutine2 (strMessage as String)MsgBox "Dagens dato er" & Format (Dato, "mm/dd/åååå") & VbCrLf & strMessageAfslut Sub |

Opkald til en sub med navngivne argumenter
Hvis du navngiver dine argumenter, behøver du ikke at videregive dem i samme rækkefølge til dine underrutiner.
123 | Sub TestRoutine ()RunRoutine1 strGreeting: = "Hvordan har du det?", StrName: = "Melanie"Afslut Sub |
123 | Sub RunRoutine1 (strName as String, strGreeting as stringMsgBox "Good Morning" & "& strName & vbCrLf & strGreetingAfslut Sub |
