excel 如何在VBA中使用模块(而不是插入按钮)内的代码添加(或复制)新用户窗体

xuo3flqw  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(139)

我需要能够同时打开相同的用户表单,因为用户需要从数据集访问信息以更新条目。每个用户表单都将具有相同的文本框、命令框等。因此用户表单需要具有结构userform(i)。
如何动态创建用户表单?用户选择ID#,新表单创建。我可以处理循环并将名称传递到表单中以更新所有引用,但在代码中进行动态复制让我完全不知所措。
我在想密码应该是这样的:

Dim frm As UserForm
 Set frm = UserForms.Add
 frm.Name = "NewName_i"

然后,我将有一个循环,它将使用Forms.Count和Forms.Visible查找存在多少个“NewName_i”,然后在需要时再添加一个。
但是我无法跳过使用代码动态创建新窗体的步骤。

iezvtpos

iezvtpos1#

如果你需要显示相同的形式(例如)5次,那么你可以这样做:

Dim colForms As Collection 'holds references to the opened forms

Sub TestForms()
    Dim i As Long
    
    Set colForms = New Collection
    For i = 1 To 5
        Dim f As frmTestx
        Set f = New frmTestx
        f.Show vbModeless 'if not modeless then code stops here...
        colForms.Add f
    Next i
End Sub

相关问题