See õpetus õpetab teile, kuidas VBA alamprotseduurilt väärtust tagastada.
Alamprotseduur ei ole mõeldud väärtuse tagastamiseks - selleks kasutatakse funktsiooniprotseduuri. Siiski võib juhtuda, et alamprotseduuril käivitate mõne koodi, kus peate selle alamprotseduuri väärtuse hankima. Seda saab teha mooduli või globaalsete muutujate abil või Exceli lehe täitmiseks alamprotseduuri abil.
Muutujate kasutamine väärtuse tagastamiseks
Muutujaid saate deklareerida mooduli tasemel. Seda tehes saab neid muutujaid kasutada kõikjal moodulis ja muutujad säilitavad oma väärtused. Muutuja deklareerimiseks moodulitasemel deklareerige lihtsalt muutuja koodimooduli ülaosas:
123456789 | Valik SelgeDim dblQty nagu DoubleAlamkatse A ()"helistage TestB alampunktileHelistage TestB -le'näita muutuja väärtust mooduli aknasSilumine. Prindi dblQtyEnd Sub |
1234 | AlamkatseB ()'täitke mooduli muutujadblQty = 900End Sub |
Nende kokku panemiseks käivitaksime TestA, mis omakorda kutsuks TestB ja annaks meile kohe aknas väärtuse 900.
See toimiks ainult moodulis, kuna muutuja on deklareeritud, kasutades mooduli tasemel lauset Dim.
Globaalne muutuja
Muutuja saate globaalsel tasandil deklareerida, et seda kogu oma projektimoodulites kasutada.
Alamprotseduuri kasutamine Exceli lehe täitmiseks
Allpool toodud alamprotseduur täidab teie Exceli lehel vahemiku A1 kuni C1, tagastades seega väärtused alamprotseduuri lahtritesse.
12345 | Sub populateRange ()Vahemik ("A1") = "Toode"Vahemik ("B1") = "Kogus"Vahemik ("C1") = "Maksumus"End Sub |
Seejärel saate nendele väärtustele viidata mõnes muus protseduuris, viidates lahtri väärtustele:
1234567 | Sub RetrieveRange ()Hämardage toode stringina, nii palju kui kaua, hind kahekordneToode = vahemik ("A1")Kogus = vahemik ("B1")Maksumus = vahemik ("C1")End Sub |