下午好。我遇到了一个希望有人能够帮助的情况。我在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显示然后关闭时其他控件是不可访问的。是否有其他人经历过这种行为或者可能有建议?
我测试过并尝试过(xl2010 + Win7),无法重现此问题。所以我最好的猜测(因为你没有显示任何代码)是基于你所说的'卸载Form02将保存数据并调用一些宏来调整主机工作表上的命名范围。'是否可以看到你的工作簿? – 2013-03-22 19:01:23
检查是否有任何其他窗体事件(在任一*表单上)设置了“Form01.ListBox1.Enabled = False”或“Form01.Listbox3.Enabled = False”。你也可以用'Form01.Listbox1.Enabled'在即时窗口中进行调试,并显示True或False。如果是这种情况,重新启用它们很简单.. – 2013-03-22 19:01:38
@Siddharth。我有一个我想提供的示例文件。我很抱歉,我是这个论坛的新成员,不知道如何获取附件,没有个人网站发布。有关如何发布此示例文件的任何建议? – 2013-03-22 20:20:07