0

我将尝试解释这种情况:

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

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

4

1 回答 1

0

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

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

如您所述,执行结束并自动关闭表单。现在,如果 test_NewFrom 是从 excel 事件执行的宏(例如布局在工作表表面上的形状),它将按预期显示。

于 2018-06-25T14:39:52.323 回答