Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据文本框名称使用可变单元格填充VBA UserForm文本框_Vba_Excel_Userform - Fatal编程技术网

根据文本框名称使用可变单元格填充VBA UserForm文本框

根据文本框名称使用可变单元格填充VBA UserForm文本框,vba,excel,userform,Vba,Excel,Userform,我在UserForm中有一组文本框,希望用Excel中的数据填充它们 文本框的名称类似于:“TextBoxXY”。X对应于列编号,Y对应于行编号 例如: TextBoxA13需要单元格A3的值 TextBoxA35需要单元格C5的值 如何在VBA中执行此操作 我试过这样的方法,但没用。我看到它首先必须对X=1的每个Y都起作用,然后对X=2的每个Y都起作用 Dim X As Long Dim Y As Long For X = 1 To 10 For Y = 1 T

我在UserForm中有一组文本框,希望用Excel中的数据填充它们

文本框的名称类似于:“TextBoxXY”。X对应于列编号,Y对应于行编号

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

如何在VBA中执行此操作

我试过这样的方法,但没用。我看到它首先必须对X=1的每个Y都起作用,然后对X=2的每个Y都起作用

    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

根据您的示例测试的代码:

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
文本框被命名为

TextBoxA11
TextBoxA12
TextBoxA13
分别


你好,斯蒂菲。今天我非常高兴回答你之前的问题,因为你表明你至少尝试过一些东西。这很重要,因为否则我们会觉得我们只是在为你工作,而不是帮助你。所以您尝试过什么?如何区分K1和A11?顺便说一句:如果您试图在用户窗体上显示工作表数据,那么我强烈建议您使用列表框,而不是大量文本框谢谢您的建议,但在这种情况下,我真的需要文本框。行Ctrl.Value=单元格(Rw,Col)。Value将“失败”如果单元格中包含一个错误值,如果它解决了您的问题,请将其标记为已回答,以便其他人知道是否继续@Steffie