根据文本框名称使用可变单元格填充VBA UserForm文本框
我在UserForm中有一组文本框,希望用Excel中的数据填充它们 文本框的名称类似于:“TextBoxXY”。X对应于列编号,Y对应于行编号 例如:根据文本框名称使用可变单元格填充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
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