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 norint turėti geras rankas, turime suprasti šių kintamųjų apimtį. Dažnai mes deklaruojame kiekvienos makrokomandos kintamuosius kiekvienoje antrinėje procedūroje. Deklaruodami vieną kintamąjį, galime jį naudoti visose to paties modulio makrokomandose, taip pat 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 bet kur

Paprastai kintamąjį deklaruojame paprogramės viduje vba, vartodami žodį „Dim“.

Pažvelkite į aukščiau esantį vaizdą. Kintamąjį „k“ paskelbiau sveikuoju skaičiumi antrinės procedūros „Global_Example1“ viduje.

Jei mes naudosime šį kintamąjį šioje sub procedūroje bet kuriuo momentu. Tačiau negaliu naudoti šio kintamojo kitoje antrinėje procedūroje nei toje pačioje klasės modulis VBA, nei kitame modulyje.

Kaip parodyta aukščiau pateiktame paveikslėlyje, kintamasis „k“, kuris yra deklaruojamas subprocedū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 būdai, kaip deklaruoti visuotinį kintamąjį „Excel VBA“.

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

Kaip matėme, jokiame modulyje negalime naudoti antrinių procedūrų kintamųjų. Norėdami, 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 paskelbiau kintamąjį „MyNumber“ kaip sveikąjį skaičių .

Kai modulio viršuje deklaruojamas kintamasis, mes galime naudoti tą patį kintamąjį visoms kitoms to paties modulio papildomoms procedūroms, šiuo atveju mes galime naudoti kintamąjį „Mano numeris“ visoms 1 modulio sub procedūroms .

Problema ta, kad negalime jų naudoti jokiuose kituose moduliuose. Šiuo atveju kintamasis „Mano numeris“, kuris yra 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 galime deklaruoti kintamąjį bet kuriame iš modulių ir naudoti 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į naudodami ne žodį „Dim“, o žodį „Public“ arba „Global“.

Aukščiau pateiktame 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 žodį „Viešas“ modulio viršuje, 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 padarantį juos prieinamus visuose VBA moduliuose.

Ką reikia atsiminti

  • Kai „Excel“ makrokomanda veikia su visuotiniu kintamuoju, kintamojo vertė yra vienoda 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ą.

$config[zx-auto] not found$config[zx-overlay] not found