通过整数调用对象

时间:2019-05-26 18:18:15

标签: excel vba

我正在尝试使用以下方法编辑一些对象文本:

' Textbox1
' Textbox2
' Textbox3

Sub Change_Text()

    Dim i As Integer


    For i = 1 To 3

        UserForm1.Textbox & i = "Hi"

    Next i

End Sub

我认为代码可以解释我的问题,当然,它返回一个错误,我不知道该怎么办...

2 个答案:

答案 0 :(得分:2)

你可以那样做

For i = 1 To 3
    Controls("Textbox" & i) = "Hi"
Next i

答案 1 :(得分:2)

可能的最佳解决方案(与您的示例不同)是遍历所有Textbox es

Private Sub loop_through_conts()
  Dim cont as Control
  For Each cont in Me.Controls
     If TypeName(cont) = "Textbox" Then
        Select Case Right(cont.Name, 1) ' in case you want only first three
        Case 1 To 3
           cont.Text = "Hi"
        End Select
     End If
  Next cont
End Sub

这样,您的代码是动态的,不必添加新的Textbox即可重写