Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2009, 02:43   #1
Insainer
Пользователь
 
Аватар для Insainer
 
Регистрация: 27.01.2008
Сообщений: 51
По умолчанию UserForm Hide Show

У меня проблема - не знаю что делать...
При переходе с формы на форму в VBA

UserForm1.Hide
UserForm3.Show

Далее обратно

UserForm3.Hide
UserForm1.Show - пишет ошибку

Run-time error '400'
Form already displayed;
can't show modally

Как так, ведь она Hide, раньше все работало???
"Программисты - это люди, которые решают методами, которые вы не понимаете проблемы, о которых даже не подозревали"
Insainer вне форума Ответить с цитированием
Старый 09.10.2009, 03:01   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Можно попробовать заменить:

UserForm1.Hide на unload UserForm1
UserForm3.Hide на unload UserForm3

UserForm3.Show на UserForm3.Show 0
UserForm1.Show на UserForm1.Show 0

Ну а лучше поискать ошибку в коде...
Не получится - прикрепляйте к сообщению пример файла с формами.
EducatedFool вне форума Ответить с цитированием
Старый 09.10.2009, 03:25   #3
Insainer
Пользователь
 
Аватар для Insainer
 
Регистрация: 27.01.2008
Сообщений: 51
По умолчанию

Все, понял - надо изменить очередность Show - Hide...
"Программисты - это люди, которые решают методами, которые вы не понимаете проблемы, о которых даже не подозревали"
Insainer вне форума Ответить с цитированием
Старый 16.12.2009, 02:15   #4
oleksander.an
 
Регистрация: 16.12.2009
Сообщений: 3
По умолчанию

вОПРОС В ДОГОНКУ. А если происходит похожее переключение между формами, но допустим на 1ой выбрали параметры комбов. потом 1ая.hide, 2ая.show. После операция на 2ой форме- обратно: 2ая.hide, 1ая.show, а выбранные значения в комбах не сохраняются сволочи Чего делать??
oleksander.an вне форума Ответить с цитированием
Старый 16.12.2009, 02:29   #5
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Использовать глобальные переменные для хранения значений "комбов"
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 16.12.2009, 09:44   #6
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от oleksander.an Посмотреть сообщение
вОПРОС В ДОГОНКУ. А если происходит похожее переключение между формами, но допустим на 1ой выбрали параметры комбов. потом 1ая.hide, 2ая.show. После операция на 2ой форме- обратно: 2ая.hide, 1ая.show, а выбранные значения в комбах не сохраняются сволочи Чего делать??
Посмотреть какой код записан на событии формы UserForm_Activate. И если он там есть и только и делает, что очищает КомбоБоксы, то перенести его в UserForm_Initialize.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 18.12.2009, 00:22   #7
oleksander.an
 
Регистрация: 16.12.2009
Сообщений: 3
По умолчанию

По поводу глобальных переменных:

они объявляются в макросе перед Sub? команда Public <переменная> as ... ? я правильно понимаю?

События формы UserForm_Activate нету. Код загрузки формы - на стартапе экселя.
oleksander.an вне форума Ответить с цитированием
Старый 18.12.2009, 05:30   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
...выбранные значения в комбах не сохраняются...
При выполнении, например, UserForm1.Hide, все имеющиеся на форме контролы сохраняют все свойства и значения. Если какого-либо значения нет, то значит "кто-то" его удалил. Ищите "его" в своем коде, который выполняется далее.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 18.12.2009, 13:23   #9
oleksander.an
 
Регистрация: 16.12.2009
Сообщений: 3
По умолчанию

Спасибо за совет! НЕ знаю почему оно влияло, но када в коде заменил Me. на имя UserForm оно стало работать
oleksander.an вне форума Ответить с цитированием
Старый 28.11.2010, 16:31   #10
npocmop
Пользователь
 
Аватар для npocmop
 
Регистрация: 02.11.2010
Сообщений: 55
По умолчанию

нашел ответы тут и тут

Последний раз редактировалось npocmop; 28.11.2010 в 23:14. Причина: набрел на ответы... ... .. .
npocmop вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA (UserForm) Zhene4ka2607 Помощь студентам 2 08.06.2009 16:59
then Form2.Show; beegl Общие вопросы Delphi 24 24.07.2008 09:53
Hide Witaliy Общие вопросы Delphi 2 12.05.2008 09:21
Form1.Hide и Form1.Show... Roof Общие вопросы Delphi 9 13.10.2007 13:33