Глобальные переменные Excel VBA

Мы обычно объявляем любую переменную, используя слово DIM, и это лучший прямой способ сделать это. Но переменные, объявленные с использованием DIM, могут использоваться только в одном модуле. Если мы попытаемся использовать эту переменную, определенную с помощью DIM, она будет применима для модуля, в котором она объявлена. Что если мы хотим использовать переменную в любом модуле или проекте? Что не может быть возможным, если мы продолжаем использовать DIM для определения этой переменной?

В этом случае у нас есть вторичная опция, определяющая переменную по слову Global или Public в VBA. Глобальные или публичные переменные VBA - это те переменные, которые объявлены в начале подкатегории с помощью Option Explicit. Что бы мы ни делали или не могли делать в подкатегориях, они выполняются до этого в Option Explicit.

Как объявить глобальные переменные в VBA?

Ниже приведены различные примеры объявления глобальной переменной в Excel с использованием кода VBA.

Вы можете скачать этот шаблон Excel для глобальных переменных VBA здесь - Шаблон Excel для глобальных переменных VBA

VBA Global Variables - Пример № 1

В этом примере мы увидим, как различные подкатегории могут использоваться как один модуль без использования глобального или открытого слова для определения какой-либо переменной. Для этого нам понадобится модуль.

  • Перейдите в меню « Вставка» и нажмите « Модуль», как показано ниже.

  • Теперь введите подкатегорию под любым именем, как показано ниже.

Код:

 Sub Global_Variable () End Sub 

  • Теперь используйте DIM для определения любой переменной. Здесь мы выбрали алфавит A в качестве строки .

Код:

 Sub Global_Variable () Dim A As String End Sub 

  • Теперь создайте другую подкатегорию в том же модуле, как показано ниже.

Код:

 Sub Global_Variable () Dim A As String Конец Sub Sub Sub Global_Variable6 () Конец Sub 

  • Теперь во второй подкатегории определите другую переменную B, используя DIM в качестве String.

Код:

 Sub Global_Variable () Dim A As Sub конца строки Sub Sub Global_Variable6 () Dim B As конца строки Sub 

Как показано выше, обе переменные A и B, определенные в обеих подкатегориях, не могут использоваться в области друг друга. Они будут применимы только в своей подкатегории.

  • Теперь, чтобы сделать это, напишите Option Explicit над первой подкатегорией, как показано ниже.

Код:

 Опция Явный Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

  • Теперь мы можем определить нашу переменную, которая будет использоваться в обеих подкатегориях, которые у нас есть ниже. Итак, теперь рассмотрим запись любой переменной, скажем, A как String, используя DIM.

Код:

 Опция Явный Dim A As String Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Поскольку мы определили переменную, все подкатегории будут в этом модуле, и это будет применимо только ко всему коду этого модуля. И если мы попытаемся вызвать переменные, определенные в этом модуле, в каком-либо другом модуле, то это даст нам ошибку.

VBA Global Variables - Пример № 2

В этом примере мы увидим, как использовать Global или Public word для определения любой переменной в Excel VBA. Для этого мы будем использовать код, который мы видели в примере-1.

Мы будем использовать нижнюю часть кода для объявления глобальной или публичной переменной.

Код:

 Опция Явный Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Как мы это делали в примере 1, где мы объявили общую переменную, которая будет использоваться в обеих подкатегориях, под Option Explicit. В этом примере мы также объявим глобальную переменную под явным вариантом.

Поскольку у нас уже есть готовый код, мы можем напрямую объявить переменные, используя Global . Теперь в приведенном ниже параметре Explicit напишите Global так же, как мы использовали для DIM, и выберите переменную по выбору. Здесь мы выбираем алфавит A, как показано ниже.

Код:

 Опция Явный Глобальный A Sub Sub_ Global_Variable () Dim A As Sub String End Sub Global_Variable6 () Dim B As String End Sub 

Теперь мы выбираем переменную любого типа. Как мы уже использовали String в приведенном выше примере, мы бы тоже использовали это здесь.

Код:

 Параметр Явный Глобальный A в виде строкового Sub Sub Global_Variable () Dim A В качестве строкового конца Sub Sub Global_Variable6 () Dim B В качестве строкового конца Sub 

Это завершает наш процесс объявления глобальной переменной. Теперь мы можем использовать это в любом модуле, любом проекте только как String. Прежде чем использовать его, удалите ранее объявленную переменную, тогда код будет выглядеть так, как показано ниже.

Код:

 Параметр Явный Глобальный A в виде строки Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Теперь давайте назначим некоторый текст определенной переменной A в обеих подкатегориях. Мы выбираем «Test1» и «Test2» для переменной A в обеих подкатегориях, как показано ниже. А также мы выбрали MsgBox, чтобы показать значения, хранящиеся в переменной A.

Код:

 Параметр Явный Глобальный A в виде строки Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Теперь запустите код, нажав клавишу F5 или нажав кнопку воспроизведения, чтобы увидеть результат.

Мы получим сообщение как «Test1», как показано выше. Это потому, что мы сохранили наш курсор в первой подкатегории.

Теперь поместите курсор в любую вторую подкатегорию и снова запустите код. Теперь мы получим окно сообщения с сообщением «Test2», как показано ниже.

Вот как мы можем создать и определить переменную один раз с помощью Global, и это можно использовать в любом модуле, любом классе и в любом проекте. Мы также можем использовать Public вместо Global, как показано ниже. И это даст тот же результат, который мы получили при использовании Global.

Код:

 Параметр Явный Открытый A В виде строки Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Плюсы VBA Global Variable

  • Это экономит время при объявлении нескольких переменных, когда мы знаем, что нам может потребоваться снова определить переменные одного и того же типа в разных модулях или подкатегориях.
  • Используя Global или Public в определении переменной процесса, наш код становится меньше, экономя время и пространство.
  • Это уменьшает сложность, когда мы пишем огромный код, и может запутаться в использовании разных переменных в разных модулях или подкатегориях.

Минусы VBA Global Variable

  • Если мы внесем какие-либо изменения в глобальную переменную, то эти изменения будут реализованы во всех местах ее использования, что приведет к проблеме в функциональности написанного кода.

То, что нужно запомнить

  • Global и Public могут использоваться взаимозаменяемо с одинаковыми функциями.
  • Если мы не хотим использовать глобальную переменную, мы можем следовать процессу, как показано в примере 1, для определения переменной. Но это будет ограничено тем же модулем.
  • Глобальные переменные могут использоваться в любом модуле, любой подкатегории, любом классе или в любом проекте.
  • Глобальная переменная дает вывод кода, в котором мы сохранили курсор. Он не будет запускать полный код за один раз, передавая все выходные по одному.

Рекомендуемые статьи

Это руководство по глобальным переменным VBA. Здесь мы обсудим, как объявлять глобальные переменные в Excel, используя код VBA, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. VBA UserForm
  2. Решить уравнение в Excel
  3. VBA Activate Sheet
  4. Как редактировать выпадающий список в Excel?

Категория: