我将尝试解释这种情况:
我有一个表格,该表格是通过编程生成和设计的。
因此,我有一个以这种形式实例化的对象:对象“ NewForm ”
在某些时候,我需要显示此表格。因此,我必须将对象NewForm添加为表单:
VBA.UserForms.Add (NewForm.Name)
然后显示表单
UserForms(0).Hide
UserForms(0).Show
问题是我需要显示无模式的形式,所以通常是简单的
UserForms(0).Hide
UserForms(0).Show vbModeless
就足够了。但是,当我使用这最后一行代码时,该表单显示出来并突然消失。
我还尝试将属性 ShowModal 设置为False,但结果相同。
先谢谢您
最诚挚的问候
注意:我尝试使用NewForm.Name.Show
,但是它不起作用,所以我不得不改用集合。
答案 0 :(得分:0)
这取决于您如何执行代码。我尝试了一个非常简单的测试,以创建一个名为NewForm且内部没有任何内容的伪表单,并从VB编辑器的“即时”窗口执行以下代码:
Sub test_NewFrom()
Dim mForm As NewForm
Set mForm = New NewForm
mForm.Show (vbModeless)
End Sub
执行结束,并且窗体按照您的描述自动关闭。 现在,如果test_NewFrom是从excel事件执行的宏(例如,在图纸表面上放置的形状),则它将按预期显示。