Denna handledning kommer att lära dig hur du ringer till en delprocedur från en annan delprocedur i VBA
Det är mycket användbart att skriva kod som kan användas upprepade gånger och kallas från flera delprocedurer i ditt projekt - det kan spara enormt mycket tid och göra VBA -koden mycket effektivare.
Kör ett delprocedur från ett annat delprocedur
Tänk på de tre delprocedurerna nedan:
1234 | Sub TestRoutine ()RunRoutine1RunRoutine2Avsluta Sub |
123 | Sub RunRoutine1 ()MsgBox "God morgon"Avsluta Sub |
123 | Sub RunRoutine2 ()MsgBox "Dagens datum är" & Format (Datum, "mm/dd/åååå")Avsluta Sub |
Om vi kör delproceduren - TestRoutine - kommer den att ringa RunRoutine1 och RunRoutine2 och 2 meddelandefält visas.

Det finns ingen gräns för antalet delprocedurer som du kan ringa från ett annat delprocedur.
Använda samtalet
Du kan också använda samtalsanvisningen framför procedurnamnet för att göra din kod lättare att läsa. Det har dock ingen som helst effekt på hur koden körs eller lagras.
1234 | Sub TestRoutine ()Ring RunRoutine1Ring RunRoutine2Avsluta Sub |

Ringa en sub med argument
Det är också möjligt att ringa en sub med argument
1234 | Sub TestRoutine ()RunRoutine1 ("Melanie")RunRoutine2 ("Ha en härlig dag")Avsluta Sub |
123 | Sub RunRoutine1 (strName as String)MsgBox "God morgon" & "& strNameAvsluta Sub |
123 | Sub RunRoutine2 (strMessage as String)MsgBox "Dagens datum är" & Format (Datum, "mm/dd/åååå") & VbCrLf & strMessageAvsluta Sub |

Ringa en sub med namngivna argument
Om du nämner dina argument behöver du inte skicka dem i samma ordning till dina underrutiner.
123 | Sub TestRoutine ()RunRoutine1 strGreeting: = "Hur mår du?", StrName: = "Melanie"Avsluta Sub |
123 | Sub RunRoutine1 (strName as String, strGreeting as stringMsgBox "God morgon" & "& strName & vbCrLf & strGreetingAvsluta Sub |
