Denne opplæringen vil lære deg hvordan du kaller en delprosedyre fra en annen delprosedyre i VBA
Det er veldig nyttig å skrive kode som kan brukes gjentatte ganger, og kalt fra flere delprosedyrer i prosjektet ditt - det kan spare enormt mye tid og gjøre VBA -koden langt mer effektiv.
Kjører en delprosedyre fra en annen delprosedyre
Vurder de 3 delprosedyrene nedenfor:
1234 | Sub TestRoutine ()RunRoutine1RunRoutine2Slutt Sub |
123 | Sub RunRoutine1 ()MsgBox "God morgen"Slutt Sub |
123 | Sub RunRoutine2 ()MsgBox "Dagens dato er" og format (dato, "mm/dd/åååå")Slutt Sub |
Hvis vi kjører delprosedyren - TestRoutine - vil den ringe RunRoutine1 og RunRoutine2 og 2 meldingsbokser vil vises.

Det er ingen grense for antall delprosedyrer du kan ringe fra en annen delprosedyre.
Bruk av samtaleerklæringen
Du kan også bruke anropserklæringen foran prosedyrenavnet, for å gjøre koden lettere å lese. Det har imidlertid ingen som helst effekt på hvordan koden kjøres eller lagres.
1234 | Sub TestRoutine ()Ring RunRoutine 1Ring RunRoutine2Slutt Sub |

Ringer en sub med argumenter
Det er også mulig å ringe en sub med argumenter
1234 | Sub TestRoutine ()RunRoutine1 ("Melanie")RunRoutine2 ("Ha en nydelig dag")Slutt Sub |
123 | Sub RunRoutine1 (strName as String)MsgBox "Good Morning" & "& strNameSlutt Sub |
123 | Sub RunRoutine2 (strMessage as String)MsgBox "Dagens dato er" & Format (Dato, "mm/dd/åååå") & VbCrLf & strMessageSlutt Sub |

Ringer en undermann med navngitte argumenter
Hvis du navngir argumentene dine, trenger du ikke å sende dem i samme rekkefølge til underrutinene dine.
123 | Sub TestRoutine ()RunRoutine1 strGreeting: = "Hvordan går det?", StrName: = "Melanie"Slutt Sub |
123 | Sub RunRoutine1 (strName as String, strGreeting as stringMsgBox "Good Morning" & "& strName & vbCrLf & strGreetingSlutt Sub |
