VBA - väärtuse tagastamine alamprotseduurist

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

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave