在运行时打开无模式表单-VBA Excel

时间:2018-06-25 13:48:00

标签: forms excel-vba modeless vba excel

我将尝试解释这种情况:

我有一个表格,该表格是通过编程生成和设计的。

因此,我有一个以这种形式实例化的对象:对象“ 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,但是它不起作用,所以我不得不改用集合。

1 个答案:

答案 0 :(得分:0)

这取决于您如何执行代码。我尝试了一个非常简单的测试,以创建一个名为NewForm且内部没有任何内容的伪表单,并从VB编辑器的“即时”窗口执行以下代码:

Sub test_NewFrom()
    Dim mForm As NewForm
    Set mForm = New NewForm
    mForm.Show (vbModeless)
End Sub

执行结束,并且窗体按照您的描述自动关闭。 现在,如果test_NewFrom是从excel事件执行的宏(例如,在图纸表面上放置的形状),则它将按预期显示。