无论如何我们有一个变量名称,如控件名称

时间:2015-05-19 21:55:15

标签: vba variables controls

我可能会让它变得比实际更难但是......说我有两个Userforms,在表单上有10个文本框,我想要的值,并让它为每一个弹出一个消息。所以我可以使用:

For i=0 to 10
    MsgBox UserForm1.Controls("TextBox" & i).Text
Next i

现在假设我想将每个转换为标记为TB1 - TB10的变量,并且我希望将每个文本框的值传递给变量。

不是一个接一个地做,而是像上面的陈述那样做吗?像:

UserForm2.Variables("TB" & i)?

更新: 这就是我的代码:

For z = 1 To 25

   If Module1.FL(z) <> "" Then 

      For pCopy = 1 To UBound(PL1)

        FileCopy PL1(pCopy), ActiveWorkbook.Path & "\DB\Img\" & result &    TextBox1.Text & TextBox8.Text & TextBox10.Text & "\Car\" & Module1.FL(z) & "\" & pCopy & ".gdb"
        PL1(pCopy) = ActiveWorkbook.Path & "\DB\Img\" & result & TextBox1.Text & TextBox8.Text & TextBox10.Text & "\Car\" & Module1.FL(z) & "\" & pCopy & ".gdb"

      Next pCopy

   End If
Next z

它检查模块的一组名称。如果找到名称,它将复制存储在PL1中的文件名。事实是,PL1仅特定于某组文件。我有PL1 = PL25我需要它来检查它们中是否有任何数据,如果是这样,将内容复制到模块中的特定名称。所以我需要像PL(z)这样的东西。

1 个答案:

答案 0 :(得分:0)

来自帮助

  

控制集合

     

包含对象中包含的所有控件。

     

<强>说明

     

对象的Controls集合中的每个控件都有一个唯一索引,其值可以是整数或字符串。集合中第一个控件的索引值为0;第二个控件的值是1,依此类推。此值指示将控件添加到集合的顺序。

     

如果索引是字符串,则表示控件的名称。控件的Name属性还指定了控件的名称。

     

您可以使用Controls集合枚举或计算单个控件,并设置其属性。例如,您可以枚举特定表单的Controls集合,并将每个控件的Height属性设置为指定值。

     

注意 For Each ... Next语句对于枚举集合非常有用。