使用VBA将控件添加到Excel用户窗体中的帧

not*_*not 12 excel vba excel-vba userform

我需要动态创建标签和按钮,然后将它们添加到用户窗体内的框架中.我该怎么做呢?看起来它应该比实际更容易.

Jon*_*ier 18

以下代码演示了如何使用控件动态填充用户窗体中的帧...

在我使用的表单中,我有一个名为Frame1的帧控件,因此在UserForm_Initialize中,您调用Frame1.Controls.Add将控件嵌入到帧中.您可以设置返回到您在UserForm代码模块中定义的WithEvents控件变量的控件,以便您可以响应您想要的任何控件上的事件...

因此,使用此方法,您需要为您创建的任何控件预先编写所需的任何事件代码...

另请注意,即使顶部,左侧,宽度和高度属性不一定出现在intellisense中,您也可以对控件进行定位和调整大小...

Private WithEvents Cmd As MSForms.CommandButton
Private WithEvents Lbl As MSForms.Label

Private Sub UserForm_Initialize()
    Set Lbl = Frame1.Controls.Add("Forms.Label.1", "lbl1")
    Lbl.Caption = "Foo"
    Set Cmd = Frame1.Controls.Add("Forms.CommandButton.1", "cmd1")
End Sub

Private Sub Cmd_Click()
    Cmd.Top = Cmd.Top + 5
End Sub

Private Sub Lbl_Click()
    Lbl.Top = Lbl.Top + 5
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 为什么``1"`在`add`方法的类名末尾? (6认同)