Форма Excel VBA не обновляется должным образом, когда подчиненная форма закрыта
Добрый день. Я столкнулся с ситуацией, я надеюсь, что кто-то здесь может помочь с. Я использую Office 2010 в Windows XP и у меня есть лист Excel, который содержит кнопку для отображения модальной формы (Form01). Form01 содержит 3 списка данных. Двойной щелчок по элементу в listbox2 откроет другую модальную форму (Form02), чтобы элемент мог быть изменен. Выгрузка Form02 сохранит данные и вызовет несколько макросов для настройки именованного диапазона на рабочем листе хоста. Этот код хранится в модуле, а не в форме.
Это где проблема возникает. Когда Form02 выгружена и Form01 доступна, я не могу ничего выбрать в listbox1 или listbox3 или кнопках на Form01. Я должен сначала выбрать что-то в listbox2, затем у меня есть доступ к другим элементам управления в форме. Я попытался.SetFocus на других элементах управления и добавить DoEvents после оператора Form02.Show 1, но безуспешно. Единственный обходной путь, который я нашел, - это скрыть и заново отобразить Form01, что вызывает мерцание экрана. Application.ScreenUpdating = False и возврат к True также, похоже, не помогают. Мне действительно нужно выяснить, какие другие элементы управления недоступны, когда форма 02 отображается, а затем закрывается. Кто-нибудь еще сталкивался с таким поведением или может быть предложение?
1 ответ
Изменить это
Private Sub lstSiteMaster_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If lstSiteMaster.ListCount = 0 Then Exit Sub
LoadFrmEditDataset Me.Controls("lstSiteMaster"), "SITE MASTER"
frmEditDataset.Show 1
Unload frmEditDataset
DoEvents
Me.lstSiteMaster.ListIndex = -1
Me.lstSiteList.ListIndex = -1
Me.lstMiniPOR.ListIndex = -1
'''BounceTheForm
End Sub
в
Private Sub lstSiteMaster_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If lstSiteMaster.ListCount = 0 Then Exit Sub
LoadFrmEditDataset Me.Controls("lstSiteMaster"), "SITE MASTER"
frmEditDataset.Show 1
DoEvents
Me.lstSiteMaster.ListIndex = -1
Me.lstSiteList.ListIndex = -1
Me.lstMiniPOR.ListIndex = -1
'''BounceTheForm
End Sub
А ТАКЖЕ
этот
Private Sub cmdApply_Click()
With Me
UpdateDataset .lblDataset, .lblECR, .lblFA, .lblFieldId, .txtFieldValue, .cboAction, .lblIndex + 2
End With
Me.Hide
End Sub
в
Private Sub cmdApply_Click()
With Me
UpdateDataset .lblDataset, .lblECR, .lblFA, .lblFieldId, .txtFieldValue, .cboAction, .lblIndex + 2
End With
Unload Me
End Sub