VBA globalūs kintamieji - Kaip paskelbti visuotinį kintamąjį VBA?

Kai kurios funkcijos yra apibrėžtos funkcijos viduje ir naudojamos funkcijose, o kai kurie kintamieji yra apibrėžti už funkcijų ribų ir yra naudojami visų funkcijų, o tokie kintamieji naudojami kaip visuotiniai kintamieji, pavyzdžiui, kintamieji, deklaruojami pagal subfunkciją, yra žinomas kaip visuotiniai kintamieji.

Visuotinis „Excel VBA“ kintamasis

Deklaruoti kintamąjį atrodo gana paprasta, tačiau norėdami gerai juos praktikuoti, turime suprasti šių kintamųjų apimtį. Dažnai kiekvieną kartą deklaruojame kiekvienos makrokomandos, esančios subprocedūroje, kintamuosius. Deklaruodami vieną kintamąjį, galime jį naudoti visose to paties modulio makrokomandose ir kituose dabartinio VBA projekto moduliuose. Šiame straipsnyje mes parodysime, kaip deklaruoti visuotinius kintamuosius programoje „Excel VBA“.

Kas yra visuotiniai „Excel VBA“ kintamieji?

VBA globalūs kintamieji yra kintamieji, kurie yra deklaruojami prieš prasidedant bet kuriai modulio makrokomandai. Kai kintamieji deklaruojami naudojant „Public“ arba „Global“, jis tampa „Global Variable“.

Papildomos procedūros kintamieji negali būti naudojami niekur.

Paprastai kintamąjį deklaruojame VBA paprogramėje, vartodami žodį „Dim“.

Pažvelkite į aukščiau esantį vaizdą. Deklaravau kintamąjį „k“ kaip sveikąjį skaičių tarpiniame procese „Global_Example1“.

Tarkime, kad mes naudosime šį kintamąjį šioje sub procedūroje bet kuriuo laiko momentu. Tačiau negaliu naudoti šio kintamojo kitoje antrinėje procedūroje nei tos pačios klasės modulio VBA, nei kito modulio.

Kaip parodyta aukščiau esančiame paveikslėlyje, kintamasis „k“, paskelbtas antrinėje procedūroje „Global_Example1“, negali būti naudojamas antrinėje procedūroje „Global_Example2“.

Panašiai kintamasis „j“, paskelbtas antrinėje procedūroje „Global_Example2“, negali būti naudojamas antrinėje procedūroje „Global_Example1“, net jei abi antrinės procedūros yra tame pačiame modulyje.

Kaip paskelbti visuotinį kintamąjį VBA?

Toliau pateikiami visuotinio kintamojo deklaravimo būdai „Excel VBA“.

# 1 - modulio kintamieji gali būti naudojami bet kurioje to paties modulio papildomoje procedūroje

Kaip matėme, mes negalime naudoti subprocedūros kintamųjų jokiuose moduliuose. Kad jie būtų prieinami visoms to paties modulio sub procedūroms, turime deklaruoti kintamuosius modulio viršuje.

Aukščiau pateiktame paveikslėlyje kintamąjį deklaravau tik modulio pradžioje. 1 modulyje kintamąjį „Mano numeris“ išreiškiau kaip sveikąjį skaičių .

Kai kintamasis bus paskelbtas modulio viršuje, tą patį kintamąjį galime naudoti visoms kitoms to paties modulio papildomoms procedūroms. Tokiu atveju mes galime naudoti kintamąjį „MyNumber“ visoms 1 modulio papildomoms procedūroms .

Problema ta, kad negalime jų naudoti jokiuose kituose moduliuose. Šiuo atveju kintamasis „MyNumber“, deklaruotas 1 modulyje, negali būti naudojamas 2 modulyje.

# 2 - Visuotiniai kintamieji gali būti naudojami bet kurioje papildomoje procedūroje ir bet kuriame modulyje

Dabar mes matėme dviejų rūšių kintamą deklaravimą ir jų taikymo sritį. Įdomu tai, kad mes galime deklaruoti kintamąjį bet kuriame iš modulių ir naudoti jį visoms sub procedūroms visuose to paties VBA projekto moduliuose.

Kad kintamasis būtų prieinamas visoms papildomoms procedūroms visuose moduliuose, modulio viršuje turime deklaruoti kintamąjį ne naudodami žodį „Dim“, bet naudodami pavadinimą „Public“ arba „Global“.

Ankstesniame paveikslėlyje matote, kad kintamąjį deklaravau naudodamas žodį „Viešas“ , o ne mūsų senovinį žodį „Dim“.

Pirmiau pateiktoje ekrano kopijoje aš deklaravau kintamąjį 1 modulyje. Turiu dar du modulius, pavadintus 2 ir 3 moduliais.

Kadangi kintamąjį deklaravau naudodamas modulio viršuje esantį žodį „Viešas“, dabar galiu prieiti prie šių kintamųjų bet kurioje antrinėje procedūroje bet kuriame tos pačios darbaknygės modulyje.

Kintamajam deklaruoti galime naudoti ne tik „Public“, bet ir žodį „Global“.

„Global & Public“ yra du raktiniai žodžiai, skelbiantys kintamąjį ir suteikiantį jiems galimybę naudotis visuose VBA moduliuose.

Ką reikia atsiminti

  • Kai „Excel“ makrokomanda veikia su visuotinio kintamojo verte, kintamasis yra tas pats visose antrinėse procedūrose.
  • Geriau išlaikyti tam tikrą modulį, kad VBA būtų deklaruojami visuotiniai kintamieji ir visi kintamieji būtų viename modulyje.
  • Vienintelis būdas atkurti kintamojo reikšmę yra makrokodos nustatymas iš naujo paspaudus sustabdymo mygtuką.

Įdomios straipsniai...