Глобальна змінна VBA

Зміст

У цьому підручнику ми розглянемо глобальні змінні. Змінна у VBA може мати різну область застосування. Область дії змінної залежить від її позиції в коді та способу її оголошення. Область застосування змінної вказує на її видимість та місце її використання.

Змінна на рівні процедури

Ці змінні можна використовувати лише в підпроцедурі або функції, де вони оголошені. Ви повинні оголосити змінну на рівні процедури, використовуючи ключове слово Dim. Крім того, ви повинні розмістити його в субпроцедурі або функції, що представляє інтерес. Те, як ви оголошуєте змінну на рівні процедури, показано у коді нижче:

1234567 Sub DeclaringAProcedureLevelVariable ()Dim someNumber As IntegersomeNumber = 5MsgBox someNumberEnd Sub

Результат такий:

Цю змінну можна використовувати лише в підпроцедурі під назвою DeclaringAProcedureLevelVariable (). Оскільки це в цій підпроцедурі, і ми використовували ключове слово Dim. Якщо ви викликаєте його з іншої підпроцедури, ви отримаєте таку помилку:

Змінна рівня модуля

Ви можете використовувати змінну рівня модуля в будь -якій з підпроцедур або функцій всередині одного модуля. Вам потрібно розмістити оголошення змінної у верхній частині модуля в розділі «Декларації» під оператором «Очевидні параметри» та використати ключове слово Dim:

Коли ми запускаємо другу підпроцедуру замість повідомлення про помилку, ми отримуємо такий результат у клітинці A1 книги:

Глобальна змінна рівня

Ви можете використовувати глобальну змінну у своїх модулях, функціях, підпроцедурах та класах. Ви оголошуєте глобальну змінну в розділі "Декларації" під оператором "Очевидні параметри" та за допомогою ключового слова "глобально". Спосіб оголошення глобальної змінної рівня показаний нижче. Обидві підпроцедури в модулі 1 можуть використовувати цю змінну.

Оскільки ця змінна є змінною глобального рівня, ви також можете використовувати її у Module2:

Коли ви запускаєте цей код з модуля 2, ви отримуєте такий результат:

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave