在运行时打开无模式窗体 - VBA Excel

Openning a Modeless Form at runtime - VBA Excel

我会试着解释一下情况:

我有一个表单,它是以编程方式生成和设计的。

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

这取决于您如何执行代码。我尝试了一个非常简单的测试,创建了一个名为 NewForm 的虚拟表单,里面没有任何内容,并从 VB 编辑器的立即 window 中执行了以下代码:

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

执行结束,表格会按照您的描述自动关闭。 现在,如果 test_NewFrom 是从 excel 事件(例如 sheet 表面上布置的形状)执行的宏,它将按预期显示。