动态创建的文本框的名称属性

时间:2014-06-04 14:51:31

标签: excel vba dynamic textbox

首先是一些背景信息:

我正在Excel中开展一个项目。当您打开文件时,会弹出一个userform并要求输入多个文本框。然后它将输入放在Excel文档中的某些单元格中。然后弹出另一个用户窗体,并要求输入更多的输入,这些输入像以前一样插入到单元格中。 接下来,它在文本框中请求数字输入,并且此数据在Excel文档中的每个类别下插入相应的行数。

现在出现问题。

我要做的下一件事是拥有一个userform,它根据用户在之前的userform中输入的数字动态创建一定数量的标签和文本框。我已经想出了如何将变量从一个用户窗体带到另一个用户窗体;现在我遇到动态创建的文本框命名问题。好吧,我真的知道如何命名,但无法弄清楚如何使用文本框' .Text属性作为Excel文档中单元格的输入。我花了六个多小时在网上搜索有关如何执行此操作的说明,我可以将其应用到我的项目中,所以现在我正在寻找个性化的帮助。

以下是我考虑过的选项:

Arrays
Controls.Add("txtBoxName" & i) in a For...Next loop
    I have actually tried the For...Next loop with Controls.Add,
and had absolutely no luck.

这两个问题,虽然从长远来看,阵列可能更方便,是(至少我看到它),你必须命名文本框,然后调用名称,这是一种语法我找不到任何地方。

有人可以帮忙吗?如果需要,我可以发布相关代码。

另外,如果我忽视了某些事情,请随意指出正确的方向。不过,我可能会请求帮助理解它! ;)

谢谢, Dudebird47

1 个答案:

答案 0 :(得分:2)

在运行时添加了一个按钮的简单示例,其中包含用于处理其click事件的代码:

Option Explicit
Private WithEvents btn As MSForms.CommandButton

Private Sub btn_Click()
    MsgBox "You clicked me"
End Sub

Private Sub UserForm_Initialize()
    Set btn = Me.Controls.Add("Forms.CommandButton.1", "some_button", True)
    With btn
        .Top = 5
        .Left = 5
        .Width = 75
        .Height = 50
        .Caption = "click me"
    End With
End Sub