Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по VBA: глобальные переменные / 3 сообщений из 3, страница 1 из 1
29.10.2008, 21:46
    #35624172
erninio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по VBA: глобальные переменные
Уважаемые форумчане, вопрос в следующем:

Сразу оговорюсь, что в создании макросов я новичок.
У меня есть массив, который должен создаваться и заполняться данными при открытии книги в(событие Workbook_Open()). Далее этот массив должен по-разному обрабатываться при внесении изменений на листах (событие Worksheet_Change()). Я поместил первую процедуру в модуль книги, вторую в модули соответствующих листов. Массив в модуле книги объявил как глобальную переменную до определения процедуры. Проблема в том, что в модулях листов созданный массив не виден. Есть идея поместить все в модуль проекта, но не знаю, как это оформить, скажем, процедуре worksheet_change в качестве параметра передается только измененная ячейка - как передать туда лист?

Подскажите, что можно сделать. Заранее спасибо.
...
Рейтинг: 0 / 0
29.10.2008, 22:12
    #35624189
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по VBA: глобальные переменные
erninioУ меня есть массив, который должен создаваться и заполняться данными при открытии книги в(событие Workbook_Open()). Далее этот массив должен по-разному обрабатываться при внесении изменений на листах (событие Worksheet_Change()). Я поместил первую процедуру в модуль книги, вторую в модули соответствующих листов. Массив в модуле книги объявил как глобальную переменную до определения процедуры. Проблема в том, что в модулях листов созданный массив не виден.Глобальные переменные надо объявлять в отдельном модуле, не привязанном ни к листу, ни к книге. В главном меню VBA - Insert->Module и вперед. Не забудь убрать объявление из модуля книги.

erninio Есть идея поместить все в модуль проекта, но не знаю, как это оформить, скажем, процедуре worksheet_change в качестве параметра передается только измененная ячейка - как передать туда лист? Плохая идея. События листа принадлежат листу и поэтому они описываются в модуле листа. Если ты их вынесешь в другой модуль - они перестанут быть событиями листа.
...
Рейтинг: 0 / 0
29.10.2008, 22:29
    #35624208
erninio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по VBA: глобальные переменные
White Owl: спасибо, работает!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопрос по VBA: глобальные переменные / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]