Обществени променливи на VBA - Как да декларирам публични променливи във VBA (примери)

Публични променливи във VBA

„Публични променливи“ във VBA, както подсказва името, са променливи, които са декларирани да се използват публично за всички макроси, които записваме в един и същ модул, както и в различни модули. Така че, когато променливите са декларирани в началото на който и да е макрос, се наричат ​​„Публични променливи“ или „Глобални променливи“.

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

Обикновено стартираме подпроцедурата VBA и вътре в подпроцедурата декларираме нашите променливи. Това е обичайната практика, която всички сме правили до тази статия.

Всеки път, когато пишем нова подпроцедура, ние декларираме свежи променливи с присвоени им типове данни. Но днес ще се сбогуваме с повтарящи се променливи в подпроцедурите.

Нека си припомним стария стил. По-долу е кодът, който съм написал с една променлива.

В подпроцедурата „Public_Variable“ декларирах тази променлива. Сега не мога да използвам нито един от другите модули.

Сега в подпроцедурата „Public_Variable1“ не можем да използваме променливата „Var1“, която беше декларирана в първата подпроцедура „Public_Variable“. Това е ограничението за деклариране на променливи вътре в подпроцедурите.

# 1 - Променливи на ниво модул

Както всички знаем, пишем макроси в модули. Можем да вмъкнем няколко модула. Можем да декларираме два вида „публични променливи“ във VBA, единият е да използваме променливите за всички подпроцедури в един и същ модул, а вторият е да използваме променливите за всички подпроцедури във всички модули.

Първо, ще видим деклариране на публични променливи в VBA на ниво модул.

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

По-долу е примерната екранна снимка за вашето разбиране.

Както можем да видим на горното изображение, аз съм декларирал две променливи, преди да започна какъвто и да е макрос в модула. Сега тези две променливи могат да се използват в произволен брой макроси в този модул.

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

Сега можем да използваме тези променливи във всички макроси, които записваме в “Module1”.

Тези променливи са ограничени за използване само в този модул. Например сега ще вмъкна още един модул и ще напиша нов макрос.

В Module2 не мога да използвам онези променливи, които сме декларирали в “Module1”.

И така, как можем да направим тези променливи публични във VBA, за да се използват във всички модули и във всички подпроцедури?

# 2 - Деклариране на променливи ги използва публично

Върнете се към “Модул1” в този модул. Декларирахме променливи, преди да започнем да пишем начина на макроса, както и какъв свят сме използвали, за да декларираме тези променливи.

Нашият традиционен начин за използване на думата „DIM“ декларирахме тези променливи.

Когато използваме само думата „DIM“, тя е ограничена само за използване във всички макроси, но в един и същ модул.

Вместо думата „DIM“, трябва да използваме думата „PUBLIC“ или „GLOBAL“, за да ги направим достъпни за използване във всички модули на макроси.

Използвах думата „Глобално“, за да направя декларацията на променливата публична. Можете също да използвате думата „Public“.

Така че, използвайки думите „Глобално“ и „Обществено“, можем да декларираме променливи, които могат да се използват за всички макроси в модулите.

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

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

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