VBA - Returner en værdi fra en underprocedure

Denne vejledning lærer dig, hvordan du returnerer en værdi fra en underprocedure i VBA.

En delprocedure er ikke designet til at returnere en værdi - det er det, en funktionsprocedure bruges til. Der kan dog være et tidspunkt, hvor du kører noget kode i en delprocedure, hvor du skal hente en værdi fra denne underprocedure. Måden at gøre dette på er at bruge modul eller globale variabler eller at bruge en underprocedure til at udfylde et Excel -ark.

Brug af variabler til at returnere en værdi

Du kan erklære variabler på modulniveau. Når du gør det, kan disse variabler bruges overalt i modulet, og variablerne bevarer deres værdier. For at deklarere en variabel på modulniveau skal du blot deklarere variablen øverst i dit kodemodul:

123456789 Mulighed eksplicitDim dblQty som dobbeltSub TestA ()'ring til TestB -subenRing til TestB'vis variabelværdien i modulvinduetDebug.Print dblQtyAfslut Sub
1234 Subtest B ()'udfyld modulvariablendblQty = 900Afslut Sub

For at sammensætte disse ville vi køre TestA, som igen ville kalde TestB og give os værdien 900 i det umiddelbare vindue.

Dette ville kun fungere inden for modulet, da variablen er blevet erklæret ved hjælp af Dim -sætningen på modulniveau.

Global variabel

Du kan erklære variablen på globalt niveau for at bruge den i hele dine projektmoduler.

Brug af en underprocedure til at udfylde et Excel -ark

Underproceduren nedenfor vil direkte udfylde område A1 til C1 i dit Excel -ark og dermed returnere værdier til cellerne fra underproceduren.

12345 Sub PopulateRange ()Range ("A1") = "Produkt"Område ("B1") = "Mængde"Område ("C1") = "Omkostninger"Afslut Sub

Du kan derefter henvise til disse værdier i en anden procedure ved at henvise til celleværdierne:

1234567 Sub RetrieveRange ()Dim produkt som streng, mængde så lang, pris som dobbeltProdukt = Sortiment ("A1")Quant = Range ("B1")Omkostninger = Område ("C1")Afslut Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave