如何引用文本框以用于从输入的数据中填写用户表单的其余部分,几乎就像搜索栏一样



我正在尝试制作一个可以使用ID号显示数据的用户表单。

我正在尝试引用一个文本框并选择它,然后将其用作参考以填写工作表中的时间和注释。我认为我不能将"txtID"放入查找功能中。

这是我的代码示例:

Sheet1.Select
Columns("A:A").Select
Selection.Find(What:="txtID", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Select
ActiveCell.Offset(0, 8).Value = txtTime2
ActiveCell.Offset(0, 9).Value = txtComment2

第一个问题是 Selection.Find(What:="txtID") 在 A 列中搜索单词 txtID,但我认为您想在表单上名为 txtID 的文本框中搜索数据。 请尝试以下操作。 将 UserForm1 更改为窗体的名称(如果不同)。

Dim ID
ID = UserForm1.Controls("txtID").Value
Sheet1.Select
Columns("A:A").Select
Selection.Find(What:=ID, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Select
ActiveCell.Offset(0, 8).Value = "=txtTime2"
ActiveCell.Offset(0, 9).Value = "=txtComment2"

表单需要加载并且已包含 txtID 中的数据。 您的代码是在用户窗体中还是在另一个模块中?

第二个问题是您需要将公式存储在引用名为 txtTime2 和 txtComment2 的单元格中的数据的偏移单元格中。 下面的代码应该做你想要的。

ActiveCell.Offset(0, 8).Value = "=txtTime2"
ActiveCell.Offset(0, 9).Value = "=txtComment2"

最新更新