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 |