使用基于TextBox Name的可变单元格填充VBA UserForm TextBox

时间:2017-11-03 11:43:41

标签: excel vba excel-vba userform

我在UserForm中有一组TextBox,并希望用Excel填充数据。

TextBoxes的名称如下:“TextBoxXY”。 X对应列号,Y对应行号。

例如:
TextBoxA13需要具有单元格A3的值
TextBoxA35需要具有单元格C5的值

如何在VBA中执行此操作?

我尝试过类似的东西,但这不起作用。我看到它首先必须为每个Y工作X = 1,然后每个Y为X = 2。

    Dim X As Long
    Dim Y As Long
    For X = 1 To 10
    For Y = 1 To 10

    With Controls("TextBoxA" & X & Y)
    .Value = Cells(3 + X, 9 + Y)
    End With
    Next Y
    Next X

1 个答案:

答案 0 :(得分:1)

根据您的示例测试代码:

Option Explicit

Private Sub CommandButton1_Click()

    Dim Ctrl As Control

    For Each Ctrl In Me.Controls

        If TypeName(Ctrl) = "TextBox" Then

            If Left(Ctrl.Name, 8) = "TextBoxA" Then

                Dim Col As Integer, Rw As Integer
                Col = Mid(Ctrl.Name, 9, 1)
                Rw = Mid(Ctrl.Name, 10, 1)

                Ctrl.Value = Cells(Rw, Col).Value

            End If

        End If

    Next

End Sub

TextBox名称为

TextBoxA11
TextBoxA12
TextBoxA13
分别

enter image description here