Определение переменных в Excel VBA - PullRequest
0 голосов
/ 05 июня 2018

Уважаемые,

Я начинаю новый проект с использованием Excel VBA и хотел бы объявить некоторые переменные, которые будут загружены во время инициализации системы, но во время использования она может быть изменена.Как мне это сделать?

Пример: при загрузке системы переменная RADIO должна быть равна «OFF», но во время использования пользователь изменит это значение на «ON» и даже на «OFF» снова.

Эта информация (РАДИО) будет использоваться во время использования системы на некоторых других страницах.

Как я могу это сделать?Большое спасибо

Бруно Лелли

1 Ответ

0 голосов
/ 05 июня 2018

Как сказал Тим Уильямс, вам нужна глобальная переменная.Рекомендуется объявить его в блоке объявления (самые первые строки) модуля кода.

Чтобы он был доступен только в модуле кода: Private booRadio as Boolean

Чтобы он был доступенв рамках всего проекта VBA, то есть всех модулей, пользовательских форм и событий рабочей книги и рабочего листа: Public booRadio as Boolean

При запуске VBA все логические переменные инициализируются как False (аналогично, все целые или длинные инициализируютсябыть 0, строка должна быть "" и т. д.).Это можно использовать, чтобы иметь известный начальный статус после запуска системы.

Или - что лучше читать в обзорах кода и, как я чувствую, более устойчивый - вы используете событие для инициализации состояния запуска.Например, как сказал ashleedawg, вы можете использовать для этого событие workbook_open.В этом случае ваша переменная должна быть удалена с помощью оператора Public, если вы хотите получить доступ к ней вне кода ThisWorkbook.

EDIT:

Скопируйте этот код в модуль кода ThisWorkbook:

Private Sub Workbook_Open()
    booRadio = True
    End Sub

При этом будет использоваться событие Workbook_Open для инициализации переменной при каждом открытии файла Excel, поскольку это событие автоматически вызывается.

...