2013-03-22 58 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