Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 Как правильно объявить переменную, чтобы значения сохранялись  [new]
Takayavot
Member

Откуда:
Сообщений: 133
Доброго дня!

Есть модуль, в нем 4 процедуры. В 1х трех процедурах есть переменные. Которые должны использоваться в 4й процедуре.
Эти переменные объявляю как глобальные до 1й процедуры модуля (Public).

Если запускать 4ю процедуру сразу после выполнения 1х трех, то значения этих переменных сохраняются.
А если запустить 4х процедуру (в целях отладки кода) 2й раз, то значения переменных уже обнуляются.

Как правильно объявить эти переменные, чтобы значения сохранялись независимо от кол-ва запусков 4й процедуры?

Большое спасибо!
6 окт 17, 17:03    [20849066]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно объявить переменную, чтобы значения сохранялись  [new]
vtuf_vjpu
Guest
Takayavot, сделай все их вызовы в 4 процедуре последовательно:
sub proc_4
'do smth
proc_1
proc_2
proc_3
end

ЗЫ Об эскеле и vba речь?
6 окт 17, 17:49    [20849208]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно объявить переменную, чтобы значения сохранялись  [new]
Takayavot
Member

Откуда:
Сообщений: 133
vtuf_vjpu,

да, о них.
Из одной процедуры работает. Спасибо. Но хотелось в целях тестирования именно 4ю процедуру прокрутить несколько раз.
6 окт 17, 18:24    [20849336]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно объявить переменную, чтобы значения сохранялись  [new]
vtuf_vjpu
Guest
Takayavot, тогда попробуй объявлять переменные в каждой из процедур с ключевым словом Static.
Я сам так не делал, но в книжках пишут, что при выходе из процедуры значение переменной должно сохраниться.
7 окт 17, 10:25    [20850435]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно объявить переменную, чтобы значения сохранялись  [new]
The_Prist
Member

Откуда: www.excel-vba.ru
Сообщений: 1610
Takayavot
значения сохранялись независимо от кол-ва запусков 4й процедуры?
Скорее всего изменить что-то в алгоритме самой процедуры, т.к. сами по себе переменные уровня модуля и проекта не очищаются(только в результате возникновения ошибок или выполнения ключевого End внутри кода).
9 окт 17, 11:44    [20853932]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно объявить переменную, чтобы значения сохранялись  [new]
Takayavot
Member

Откуда:
Сообщений: 133
The_Prist
Takayavot
значения сохранялись независимо от кол-ва запусков 4й процедуры?
Скорее всего изменить что-то в алгоритме самой процедуры, т.к. сами по себе переменные уровня модуля и проекта не очищаются(только в результате возникновения ошибок или выполнения ключевого End внутри кода).


Спасибо!
9 окт 17, 12:22    [20854091]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно объявить переменную, чтобы значения сохранялись  [new]
Takayavot
Member

Откуда:
Сообщений: 133
vtuf_vjpu,

так я тоже пробовала, не помогло.
9 окт 17, 12:22    [20854093]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно объявить переменную, чтобы значения сохранялись  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 16234
Значения переменных обнуляются при рестарте кода модуля.

Если необходимо отлаживать 4-ю процедуру, наиболее разумно поставить в её начале брейк и в Immediate Window присвоить переменным необходимые значения. Либо временно, для отладки, создать 5-ю процедуру, которая присвоит такие значения и вызовет 4-ю.
9 окт 17, 12:29    [20854119]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить