Ši pamoka išmokys jus, kaip grąžinti vertę iš antrinės procedūros VBA.
Antrinė procedūra nėra skirta grąžinti vertę - tam naudojama funkcijų procedūra. Tačiau kartais gali būti, kad vykdydami tam tikrą kodą vykdote papildomą procedūrą, kuriai reikia gauti šios antrinės procedūros vertę. Tai galima padaryti naudojant modulį arba visuotinius kintamuosius arba naudojant papildomą procedūrą „Excel“ lapui užpildyti.
Kintamųjų naudojimas reikšmei grąžinti
Galite deklaruoti kintamuosius modulio lygiu. Tai darydami, tie kintamieji gali būti naudojami bet kurioje modulio vietoje ir kintamieji išlaiko savo vertes. Norėdami deklaruoti kintamąjį modulio lygiu, tiesiog deklaruokite kintamąjį savo kodo modulio viršuje:
123456789 | Pasirinkimas aiškusDim dblQty kaip dvigubasAntrasis testas A ()“skambinkite„ TestB “poskyriuiSkambinkite TestB“rodyti kintamojo vertę modulio langeDerinimas. Spausdinti dblPabaiga Sub |
1234 | Antrasis bandymasB ()“užpildykite modulio kintamąjįdblQty = 900Pabaiga Sub |
Norėdami juos sudėti, paleistume „TestA“, o tai savo ruožtu iškviestų „TestB“ ir tiesioginiame lange pateiktų 900 vertę.
Tai veiktų tik modulio viduje, nes kintamasis buvo deklaruotas naudojant Dim sakinį modulio lygiu.
Pasaulinis kintamasis
Galite deklaruoti kintamąjį pasauliniu lygiu, kad galėtumėte jį naudoti visuose projekto moduliuose.
Papildomos procedūros naudojimas „Excel“ lapui užpildyti
Toliau pateikta antrinė procedūra tiesiogiai užpildys diapazoną nuo A1 iki C1 jūsų „Excel“ lape, taip grąžindama reikšmes ląstelėms iš papildomos procedūros.
12345 | Sub populateRange ()Diapazonas ("A1") = "Produktas"Diapazonas ("B1") = "Kiekis"Diapazonas ("C1") = "Kaina"Pabaiga Sub |
Tada galite nurodyti šias vertes kitoje procedūroje, nurodydami langelių reikšmes:
1234567 | Sub RetrieveRange ()Išblukinkite gaminį kaip eilutę, kiek norite, kiek kainuoja dvigubaiProduktas = asortimentas ("A1")Kiekis = diapazonas ("B1")Kaina = diapazonas ("C1")Pabaiga Sub |