如何在VBA中使用循环函数填充多个文本框

时间:2010-05-31 16:07:57

标签: vba textbox loops

我在VBA中创建了一个带有许多文本框的用户界面。我读了一张excel表,我将这一项的所有价值都放在用户界面的所有文本框中。因此,用户可以修改这些值,然后将其保存在Excel工作表中。

因为我们不能像文件框(textBox(1),textbox(2)....)那样命名文本框,所以使用循环函数很难填充文本框。

我尝试使用tag或tabindex属性,但我找不到好的方法继续....有人知道一个简单的方法来解决这个问题!

谢谢

3 个答案:

答案 0 :(得分:1)

是的,你可以。

将文本框命名为Textbox1,Textbox2等,然后使用

访问它们
Form.Controls("Textbox" & ID)

答案 1 :(得分:1)

您可以使用此代码填充多个文本框

    Dim rs As Object
    Dim i As Integer
    Dim ctlr As Control
     Set rs = Me.Recordset.Clone
     For Each ctlr In Me.Controls
     If TypeOf ctlr Is TextBox Then
      For i = 0 To ctlr.Controls.Count
      On Error Resume Next
       ctlr.Value = rs!SomeField 
       rs.MoveNext
      Next i
    End If

Next

答案 2 :(得分:0)

迭代表单的控件集合。

例如,您的用户表单称为myForm,然后是

myForm.Controls(i)

让你掌握myForm中的任何控件。现在,您可以使用控件属性来标识您正在查看的那个(标签,文本框,按钮等)。我建议您使用标记,例如,hmmmm ....“TEXTBOX”,以简化ID的过程。

if myForm.Controls(i).Tag="TEXTBOX" then 'it's my textbox ! hurraay!!!