Excel 如何在userform对象指示符名称(VBA)中使用变量

Excel 如何在userform对象指示符名称(VBA)中使用变量,excel,vba,Excel,Vba,我正在VBA中创建一个用户表单,我要搜索的是一个特定的文本,当它被找到时,我希望从下一个单元格填充文本框 我的代码是: i = TextBox1.Value Set orange = Sheets(1).Range("A1:A10000").Find(i, LookIn:=xlValues, lookat:=xlWhole) If orange Is Nothing Then MsgBox "No Match Found" Else: j = orange.Address ka = 1 kb =

我正在VBA中创建一个用户表单,我要搜索的是一个特定的文本,当它被找到时,我希望从下一个单元格填充文本框

我的代码是:

i = TextBox1.Value
Set orange = Sheets(1).Range("A1:A10000").Find(i, LookIn:=xlValues, lookat:=xlWhole)
If orange Is Nothing Then
MsgBox "No Match Found"
Else: j = orange.Address
ka = 1
kb = 11
For k = 1 To 10
UserForm1(TextBox & kb).Value = Sheets(1).Range(j).Offset(0, ka).Value
ka = ka + 1
kb = kb + 1
Next k
当然
UserForm1(TextBox&kb)。Value=Sheets(1)。Range(j)。Offset(0,ka)。Value
不起作用

有什么帮助吗?

  • 使用
    Me
    代替表单名称
  • 您不需要所有这些计数器变量,只需使用循环计数器即可
  • 使用
    控件
    集合访问文本框(传入字符串)
  • 缩进代码
未经测试:

i = TextBox1.Value
Set orange = Sheets(1).Range("A1:A10000").Find(i, LookIn:=xlValues, lookat:=xlWhole)

If orange Is Nothing Then
    MsgBox "No Match Found"
Else

    For k = 1 To 10
        Me.Controls("TextBox" & (k+10)).Value = orange.EntireRow.Cells(k).Value
    Next k

end if