Как объявить глобальный массив внутри UserForm_Initialize

программирование excel VBA

Как объявить глобальный массив внутри UserForm_Initialize, чтоб данный массив был виден в других функциях?

Sub TestFunc()
MsgBox Holidays(2, 1)
End Sub

Sub UserForm_Initialize()
Dim TestArray(12, 31) As Integer
TestArray(1, 1) = 1
TestArray(1, 2) = 2
TestArray(2, 1) = 26
TestArray(3, 1) = 8
TestArray(3, 2) = 20
End Sub

При таком коде Sub TestFunc() вылетает с ошибкой : Sub or Function not definde

Пробывал объявить перемнную так: Public TestArray(12, 31) As Integer выходит ошибка: Invalid Attribute in Sub or Function


Примечание:
Я неправильно тут указал первую функию, вот исправленная:

Sub TestFunc()
MsgBox TestArray(2, 1)
End Sub
Ответы:
Dim TestArray(12, 31) As Integer
'-----------------------------------------------------------------------------
Private Sub CommandButton1_Click()
   MsgBox TestArray(2, 1)
End Sub
'-----------------------------------------------------------------------------
Sub UserForm_Initialize()
   TestArray(1, 1) = 1
   TestArray(1, 2) = 2
   TestArray(2, 1) = 26
   TestArray(3, 1) = 8
   TestArray(3, 2) = 20
End Sub
PS:
На форму была добавлена кнопка CommandButton1


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.