在运行时打开无模式窗体 - 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 表面上布置的形状)执行的宏,它将按预期显示。
我会试着解释一下情况:
我有一个表单,它是以编程方式生成和设计的。
所以,我有一个用这种形式实例化的对象: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 表面上布置的形状)执行的宏,它将按预期显示。