Forståelse Subrutiner

Når du skriver makroer i Excel, bruge dig et programmeringssprog kaldet Visual Basic for Applications (VBA). Dette er baseret på den BASIC programmeringssprog, med særlige udvidelser til Excel. Et af de elementer i sproget er evnen til at bruge subrutiner i dine programmer. For eksempel overveje følgende VBA makro:

Sub Macro1 ()
TestSub
End Sub

Sub TestSub ()
MsgBox "I underprogram"
End Sub

Denne enkle makro (Macro1) ikke noget, men kalder en subrutine (TestSub), som igen viser en meddelelsesboks meddele Dem, at det er i underprogram. Når du klikker på OK for at fjerne meddelelsen boksen subrutinen ender og vender tilbage kontrol til hovedprogrammet. Du kan have så mange underprogrammer i et VBA-program, som du ønsker. Formålet med hver bør være at udføre almindelige opgaver, så du ikke behøver at omskrive den samme kode hele tiden.

Du kan også overføre parametre til dine subrutiner. Disse parametre kan så påvirkes af din subrutine. For eksempel overveje følgende makro:

Sub Macro1 ()
A = 1
PrintIt A
End Sub

Sub PrintIt (x)
MsgBox "Værdi:" & x
End Sub

Dette er en simpel makro, der sætter en variabel, og derefter sender det i en subrutine kald til PrintIt. Denne subrutine viser værdien af ​​variablen i en besked boks, og derefter (efter du trykker på OK) vender tilbage til det kaldende program.

Bemærk, at underprogram ikke bruger den samme variabel navn, som det blev vedtaget. Dette skyldes, at VBA gentildeler værdien af ​​x (hvad underprogrammet forventer at modtage), så det svarer til værdien i A (hvad programmet går til subrutine). Det vigtige ting at huske i forbifarten parametre subrutiner er, at dit program skal bestå det samme antal parametre som underprogram forventer, og at parametrene skal være af matchende typer og i den rigtige rækkefølge.

ExcelTips er din kilde til omkostningseffektiv Microsoft Excel træning. Dette tip (11764) gælder for Microsoft Excel 2007 og 2010. Du kan finde en version af dette tip for den ældre menu interface Excel her: Understanding Subrutiner.


© 2020 Zajacperrone.com | Contact us: webmaster# zajacperrone.com