首页 > 解决方案 > 如何在用户窗体对象指示器名称(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行不通。

有什么帮助吗?

标签: excelvba

解决方案


  • 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

推荐阅读