0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
|
|
1 | |
Не понятное обнуление глобальных переменных12.07.2016, 22:08. Показов 7667. Ответов 13
Метки нет (Все метки)
Всем привет.
Я тут новенький, так что если что не так, прошу прощение. :-) Суть вопроса в следующем. Поясните пожалуйста почему происходит обнуление переменных в Пример1. И главное, как это избежать? Прикрепляю два файла. За ранее, благодарю.
0
|
12.07.2016, 22:08 | |
Ответы с готовыми решениями:
13
Создание глобальных переменных в Excel Access 97 иногда сбрасывает значения глобальных переменных Сохранение глобальных переменных между сеансами работы с книгой В чем разница объявления глобальных переменных в module или в ThisDocument? |
2 / 2 / 1
Регистрация: 15.08.2014
Сообщений: 30
|
||||||
13.07.2016, 08:33 | 2 | |||||
Опытным путём было доказано что на время процедуры работы с листами переменная не терялась, и в конце процедуры оставалась с тем же значением.
Значение переменной теряется после выхода из процедуры в которой фигурирует удаление листа Тайна где-то рядом... Решил вашу проблему хитровычурным способом (Код к первому листу для кнопок):
Не могу сказать о его надежности, но раз работает почему бы и нет.
1
|
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
|
|
13.07.2016, 09:09 [ТС] | 3 |
Спасибо, но немного не то. В моем случае это больше похоже на "костыль".
Дело в том, что прикрепленные файлы, это лишь пример, как происходит ошибка на основном коде. А там этих переменных поболее и для каждой держать статическую и последующей инициализацией... Совсем все геморно получается. Проще мне отказаться от кнопки в Шаблонах и подумать о решение другим способом. :-) Но хотелось бы понять все же почему это происходит. Как видно из Примера2, без кнопки в Шаблоне и при удалении листа переменные не теряют своих значений. И обнуление как-то связано с удалением и кнопками в тех листах. Все равно Благодарю Вас за попытку помощи. Возможно еще кто сможет разобраться. :-)
0
|
4064 / 1445 / 399
Регистрация: 07.08.2013
Сообщений: 3,617
|
|
13.07.2016, 09:11 | 4 |
глобальные переменные обнуляются при возникновении ошибки кода
0
|
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
|
|
13.07.2016, 09:17 [ТС] | 5 |
1. Если ошибка, почему не выдает предупреждение об этом?
2. И где именно ошибка в коде в прикрепленном файле(Пример 1)?
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
13.07.2016, 09:19 | 6 |
Попробуйте вместо кнопок поставить рисунки - может это связано именно с кнопками?
Я тоже видел что после удаления листа переменная ещё живая, а уже при следующем вызове обнулена.
0
|
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
|
|
13.07.2016, 09:25 [ТС] | 7 |
Попробовал, но то же самое. Как-то связано с объектом в целом.
Причем потеря происходит сразу же после строки удаления листа, а не по выходу из процедуры, как писал PandoraBox.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
13.07.2016, 09:29 | 8 |
Я сразу после удаления смотрел значение переменной - там всё ещё было 25.
0
|
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
|
|
13.07.2016, 09:37 [ТС] | 9 |
Да, ТОЧНО, проверил! Не туда посмотрел. Прошу прощения. После удаления еще значения есть. Значит переменные обнуляются после выхода из процедуры, как и писал PandoraBox.
0
|
190 / 59 / 20
Регистрация: 16.07.2013
Сообщений: 234
|
|
13.07.2016, 10:48 | 10 |
проблема в ActiveX, без костылей вам не обойтись
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
13.07.2016, 11:02 | 11 |
Так сказали что проверяли без ActiveX...
Добавлено через 5 минут Проверил сам - с рисунками всё работает как надо, значение сохраняется. Кто если не мы... Добавлено через 3 минуты Правда я для надёжности сразу убрал в названии макроса эти _Click, проверьте сперва не изменяя название.
1
|
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
|
|
13.07.2016, 11:44 [ТС] | 12 |
Hugo121, а можете файлик прикрепить с рабочим вариантом (я так понял с рисунком вместо кнопки) если вас не затруднит.
Спасибо.
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
13.07.2016, 11:59 | 13 |
Файл показать не могу. Да и нет его уже...
Но ведь нет проблем удалить эти кнопки, вместо них поставить на лист две автофигуры (или любые рисунки), далее на каждый рисунок по ПКМ назаначить свой макрос. Только уберите на время из названия макроса private, а то не увидите их в списке. Добавлено через 3 минуты Вообще с этими кнопками была у народа беда после некоторых обновлений... Я их вообще не использую, поэтому опыта беды нет
1
|
0 / 0 / 0
Регистрация: 12.07.2016
Сообщений: 7
|
|
13.07.2016, 12:34 [ТС] | 14 |
Да, с рисунком я уже проверил, работает. ДО этого я рисунок вставлял как Элемент управления.
Но тут такое дело, мне для кнопки требовалось использования свойства Visible, а с рисунком так не получится. Или же тоже можно как-то по условию скрывать и отображать рисунок? Добавлено через 10 минут Вот нашел похожую ситуацию Excel 2003. Глобальная переменная = 0 в Worksheet_SelectionChange Видимо глюк какой-то. Сделал костыль в виде новой инициализации всех скопом переменных. Всем спасибо за участие. :-)
0
|
13.07.2016, 12:34 | |
13.07.2016, 12:34 | |
Помогаю со студенческими работами здесь
14
Обнуление глобальных переменных Рассмотреть программу, написать имена глобальных переменных, локальных переменных, формальных параметров О глобальных переменных Определение глобальных переменных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |