我希望能够在我的VBA程序启动后根据需要创建表单。这可能吗?
我有搜索stackoverflow和整个网络,无法找到明确的答案。如果可以,我还没有找到代码来完成它。
如果可能的话,我只是在寻找一些非常基本的通用代码。
答案 0 :(得分:0)
一般来说,你可以做你以后的事情,虽然你遗漏了很多细节,所以很难说。
表单就像任何其他类一样,因此可以实例化其中的许多类。
Public Sub CreateForms()
Dim i As Integer
For i = 1 To 3
Dim u As UserForm1
Set u = New UserForm1
u.Show False ' <- Set modal to false so the new form will not block the loop.
Next i
End Sub
这应该创建相同表格的三个副本。
修改
在回顾了Tim的评论之后,我已经添加了以下内容。
Dim u As UserForm1
Set u = New UserForm1
Dim t As MSForms.CommandButton
Load u
With u
Set t = u.Controls.Add("Forms.CommandButton.1", "cmdButton1", True)
With t
.Caption = "Dynamic Button"
.Left = 10
.Top = 10
End With
.Height = 300
.width = 600
.Caption = "Dyanmic Form"
.Show
End With
看起来您确实需要创建一个空白表单,但您可以只使用一些简单的东西作为您希望生成的任何表单的基础。
更多信息:http://msdn.microsoft.com/en-us/library/aa277578%28v=vs.60%29.aspx