【发布时间】:2012-07-17 09:10:08
【问题描述】:
我想以编程方式使用 VBA 在模块中创建用户表单。我是新手且缺乏经验,因此我尝试了几个示例,但它们不符合我的要求。
我只想要那个宏
- 使用 VBA 在模块内创建用户表单
- 有一个包含一些数据的 ListBox
- 有一个带监听器的 CommandButton
这是我使用的代码
Option Explicit
Sub MakeuserForm()
'Dim CommandButton1 As MsForms.CommandBarButton
'Dim ListBox1 As MsForms.ListBox
Dim UserForm1 As VBComponent
Set UserForm1 = ActiveWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm)
With UserForm1
.Properties("Height") = 100
.Properties("Width") = 200
On Error Resume Next
.Name = "My Form"
.Properties("Caption") = "This is your user form"
End With
ShowForm
End Sub
Sub ShowForm()
NewForm.Show
End Sub
现在我不知道如何使用监听器将 ListBox 和按钮添加到表单中。
【问题讨论】:
-
发布您尝试过的内容,并请阅读常见问题解答stackoverflow.com/faq。这里不是获取快速答案的地方,而是学习的地方。
-
像这样动态创建整个表单通常不会像您想象的那么好。除非你真的无法制作通用版本,至少是某种骨架,否则这将是一大堆不必要的工作。
-
请解释为什么需要动态创建表单。除非您有特殊需要,正如 Brad 解释的那样,这是很多工作。
-
我想动态地制作它只是因为我想创建一个插件,以便其他用户可以轻松地将该插件导入他们的 Excel 工作表中。 (((如果我创建用户表单,他们可能还必须创建用户表单才能使用我的插件。))