如何在用户窗体对象指示符名称(VBA)中具有变量

时间:2019-02-24 17:18:30

标签: 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 = 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不起作用。

对此有任何帮助吗?

1 个答案:

答案 0 :(得分:1)

  • 使用Me代替表单名称
  • 您不需要所有这些计数器变量-只需使用循环计数器
  • 使用Controls集合访问文本框(传递字符串)
  • 缩进您的代码

未经测试:

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