Как объявить глобальные переменные в Excel VBA видимыми через книгу
У меня есть вопрос о глобальной области применения, и я абстрагировал проблему в простой пример:
В книге Excel: вЛист1 У меня есть две (2) кнопки.
Первый помеченSetMe и связан с подпрограммой вМодуль Sheet1:
Sheet1 код:
Option Explicit
Sub setMe()
Global1 = "Hello"
End Sub
Второй помеченПокажи мне и связан с подпрограммой вМодуль этой рабочей книги:
Код этой рабочей книги:
Option Explicit
Public Global1 As String
Debug.Print("Hello")
Sub showMe()
Debug.Print (Global1)
End Sub
Нажав наSetMe производит компиляторerror: variable not defined
.
Когда я создаю отдельный модуль и перемещаю объявлениеGlobal1 в это все работает.
Итак, мой вопрос: Все, что я прочитал, говорит о том, что глобальные переменные, объявленные в верхней части модуля, вне какого-либо кода, должны быть видны всем модулям в проекте. Очевидно, это не тот случай. Если только мое пониманиемодуль не является правильным.
ОбъектыSheet1
, Sheet2
, ThisWorkbook
... которые идут с книгой: не являются ли эти модули способными объявлять переменные в глобальном масштабе?
Или это единственное место, где можно объявить глобальный, в отдельном модуле типаМодули.