Глобални променливи на VBA - Как да декларирам глобална променлива във VBA?

Някои функции се дефинират във функция и се използват във функциите, а някои променливи се дефинират извън функциите и се използват от всички функции и такива променливи се използват като глобални променливи, например променливите, декларирани в подфункцията са известен като глобални променливи.

Глобална променлива в Excel VBA

Декларирането на променлива изглежда доста просто, но за да имаме добри ръце с тях, трябва да разберем обхвата на тези променливи. Често ние декларираме променливите за всеки макрос в подпроцедурата всеки път. Но като декларираме една променлива, можем да я използваме във всички макроси в същия модул и другите модули на текущия проект на VBA. В тази статия ще ви покажем как да декларирате глобални променливи в Excel VBA.

Какво представляват глобалните променливи в Excel VBA?

Глобалните променливи на VBA са променливи, които се декларират преди началото на който и да е макрос в модула. Когато променливите се декларират чрез използване на „Public“ или „Global“, тя става „Global Variable“.

Подпроцедурни променливи не могат да се използват никъде.

Обикновено декларираме променливата вътре в подпрограмата във VBA, като използваме думата „Dim“.

Погледнете горното изображение. Декларирах променливата „k“ като цяло число в подпроцедурата Global_Example1.

Да предположим, че използваме тази променлива вътре в тази подпроцедура по всяко време. Въпреки това не мога да използвам тази променлива в друга подпроцедура нито в същия модул на клас във VBA, нито в друг модул.

Както е показано на горното изображение, променливата „k“, декларирана в подпроцедурата Global_Example1, не може да се използва в подпроцедурата Global_Example2.

По същия начин променлива „j“, декларирана в подпроцедурата Global_Example2, не може да се използва в подпроцедурата Global_Example1, въпреки че и двете подпроцедури са в един и същ модул.

Как да декларирам глобална променлива във VBA?

Следват начините за деклариране на глобална променлива в Excel VBA.

# 1 - Модулните променливи могат да се използват във всяка подпроцедура в същия модул

Както видяхме, не можем да използваме подпроцедурните променливи в нито един от модулите. За да ги направим достъпни за всички Sub процедури в същия модул, трябва да декларираме променливите в горната част на модула.

В горното изображение съм декларирал променливата само в началото на модула. Изразих променливата „MyNumber“ като Integer в модул 1 .

След като променливата бъде декларирана в горната част на модула, можем да използваме същата променлива за всички останали подпроцедури в същия модул. В този случай можем да използваме променливата „MyNumber“ за всички подпроцедури в модул 1.

Проблемът е, че не можем да ги използваме в нито един от другите модули. В този случай променливата „MyNumber“, декларирана в Модул 1, не може да се използва в Модул 2.

# 2 - Глобалните променливи могат да се използват във всяка подпроцедура, както и във всеки модул

Сега видяхме два вида декларация на променливи и обхвата им, докато използвахме. Вълнуващото е, че можем да декларираме променливата във всеки един от модулите и да я използваме за всички Sub процедури във всички модули на един и същ VBA проект.

За да направим променливата достъпна за всички подпроцедури за всички модули, трябва да декларираме променливата в горната част на модула не като използваме думата „Dim“, а като използваме името „Public“ или „Global“.

На горното изображение можете да видите, че използвах думата „Public“, за да декларирам променливата вместо нашата ветеранска дума „Dim“.

В горната екранна снимка съм декларирал променливата в Модул 1. Имам още два модула, наречени Модул 2 и Модул 3.

Тъй като съм декларирал променливата, използвайки думата „Public“ в горната част на модула, сега мога да получа достъп до тези променливи във всяка подпроцедура във всеки модул на същата работна книга.

Не само „Public“, но можем да използваме и думата „Global“, за да декларираме променливата.

Global & Public са двете ключови думи, за да декларират променливата и да ги направят достъпни в модулите във VBA.

Неща за запомняне

  • След като excel макросът се изпълни със стойността на глобалната променлива, променливата е една и съща във всички процедури Sub.
  • По-добре е да поддържате определен модул, за да декларирате глобални променливи във VBA и да имате всички променливи в един модул.
  • Единственият начин да възстановим стойността на променливата е чрез нулиране на кода на макроса чрез натискане на бутона за спиране.

Интересни статии...