如何在 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