2013-03-22 142 views
0

下午好。我遇到了一個希望有人能夠幫助的情況。我在Windows XP上運行Office 2010,並有一個Excel工作表,其中包含一個用於顯示模式窗體(Form01)的按鈕。 Form01包含3個數據列表框。雙擊列表框2中的項目將打開另一個模式窗體(Form02),以便可以修改該項目。卸載Form02將保存數據並調用一些宏來調整主機工作表上的命名範圍。此代碼存儲在模塊中,而不是表單中。Excel VBA窗體在關閉子窗體時不能正確刷新

這是問題發生的地方。當Form02卸載並且Form01可訪問時,我無法選擇listbox1或listbox3中的任何內容或Form01上的按鈕。我必須先選擇listbox2中的某些內容,然後才能訪問表單上的其他控件。我已經嘗試過。在其他控件上設置焦點並在Form02.Show 1聲明之後添加DoEvents而沒有運氣。我發現的唯一解決方法是隱藏並重新顯示導致屏幕閃爍的Form01。 Application.ScreenUpdating = False並回到True似乎也沒有幫助。我真的需要弄清楚Form02顯示然後關閉時其他控件是不可訪問的。是否有其他人經歷過這種行爲或者可能有建議?

+0

我測試過並嘗試過(xl2010 + Win7),無法重現此問題。所以我最好的猜測(因爲你沒有顯示任何代碼)是基於你所說的'卸載Form02將保存數據並調用一些宏來調整主機工作表上的命名範圍。'是否可以看到你的工作簿? – 2013-03-22 19:01:23

+0

檢查是否有任何其他窗體事件(在任一*表單上)設置了「Form01.ListBox1.Enabled = False」或「Form01.Listbox3.Enabled = False」。你也可以用'Form01.Listbox1.Enabled'在即時窗口中進行調試,並顯示True或False。如果是這種情況,重新啓用它們很簡單.. – 2013-03-22 19:01:38

+0

@Siddharth。我有一個我想提供的示例文件。我很抱歉,我是這個論壇的新成員,不知道如何獲取附件,沒有個人網站發佈。有關如何發佈此示例文件的任何建議? – 2013-03-22 20:20:07

回答

0

更改此

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 
+0

這工作完美。謝謝您的幫助。對此,我真的非常感激。 – 2013-03-25 19:26:36