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
行不通。
有什么帮助吗?
解决方案
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
推荐阅读
- javascript - 如何阻止外部脚本网址
- sql - ORACLE DB 的 MIN 和 DISTINCT
- c++ - 静态函数中对静态变量的未定义引用
- command-line-interface - 使用 ngrok 的 502 错误网关
- batch-file - 通过右键单击批处理文件提取多个 Rar/Zip 文件
- python - 在 Python 中使用一个行列表推导从一个列表中获取两个列表
- c++ - C++ 数组中的 C6385 和 C6201 警告
- php - LARAVEL::如何在另一个刀片页面上显示请求的日期范围
- excel - 重命名形状组-小问题
- python - 如何使用 lambda 重命名 DataFrame 列?