У меня есть система VBA (Excel 2010), которая включает в себя выбор элемента из списка и его отображение в другой форме. Вот очень упрощенная версия того, что происходит.
' Part of frmForm1 code module
sub lstListbox_Click
dim MyEvent as string
dim i as integer
i=me.lstListbox.listindex
MyEvent=me.lstlistbox.list(i)
' Now show the item in the second form
Load frmForm2
me.hide
ThisWorkbook.LoadDataIntoForm2 (frmForm2, MyEvent)
frmForm2.show
unload frmForm2
me.show
end sub
Окно списка принимает щелчок и сначала событие (выше указывается обработчик события). Ключевые части обработчика событий:
- Загрузить вторую форму (для отображения подробных данных)
- Передать вторую форму в качестве параметра UserForm процедуре (LoadDataIntoForm2)
- Скрыть форму хоста (frmForm1) и показать вторую форму (frmForm2)
- Когда вторая форма обрабатывает щелчок Exit, код выглядит следующим образом:
'Часть модуля кода frmForm2
sub cmdExit_Click
me.hide
end sub
Первый раз вокруг него работает отлично - но когда я вернусь в frmForm1 (в хвостовом конце процедуры lstListBox_Click), даже если остальная часть формы действует, то ListBox остается упорно не отвечает
.
Мне удалось абстрагироваться до небольшой демонстрационной системы, если это помогло бы - то же самое поведение наблюдается там. (Это обычный файл .xls, но его, похоже, нелегко принять как загрузку)
Кто-нибудь видел это раньше? И у кого-нибудь есть идеи, как заставить это работать так, как я хочу?
Спасибо
Тони