如何在 vba 中动态地将文本框一个放在另一个下方
How to dynamically position textboxes one below the other in vba
我正在处理一个用户窗体,我想在每次单击命令按钮时添加文本框。以下代码执行此操作:
Private Sub CommandButton1_Click()
Dim editBox As Control
Set editBox = UserForm1.Controls.Add("Forms.TextBox.1")
End Sub
但是我想我只在点击时添加了一个文本框,对吗?如果是这样,有没有办法添加与我单击 commandButton 一样多的文本框?
我的另一个大问题是将添加的每个文本框放置在彼此下方,就像在列中一样。有办法吗?
或者您建议我更改添加文本框的方式?
谢谢
排列动态创建的文本框
每次点击都会创建一个新的文本框,而不会为它们重叠的 .Top
属性 分配(更改)值。如果没有名字,您以后将无法引用它们。
Private Sub CommandButton2_Click()
Static i
Dim editBox As MSForms.Control
Set editBox = Me.Controls.Add("Forms.TextBox.1")
i = i + 1
editBox.Name = "myBox" & i
editBox.Top = i * editBox.Height
End Sub
我正在处理一个用户窗体,我想在每次单击命令按钮时添加文本框。以下代码执行此操作:
Private Sub CommandButton1_Click()
Dim editBox As Control
Set editBox = UserForm1.Controls.Add("Forms.TextBox.1")
End Sub
但是我想我只在点击时添加了一个文本框,对吗?如果是这样,有没有办法添加与我单击 commandButton 一样多的文本框?
我的另一个大问题是将添加的每个文本框放置在彼此下方,就像在列中一样。有办法吗?
或者您建议我更改添加文本框的方式?
谢谢
排列动态创建的文本框
每次点击都会创建一个新的文本框,而不会为它们重叠的 .Top
属性 分配(更改)值。如果没有名字,您以后将无法引用它们。
Private Sub CommandButton2_Click()
Static i
Dim editBox As MSForms.Control
Set editBox = Me.Controls.Add("Forms.TextBox.1")
i = i + 1
editBox.Name = "myBox" & i
editBox.Top = i * editBox.Height
End Sub