首页 > 解决方案 > 如何通过匹配来自另一个文本框的搜索结果在用户窗体的文本框中显示搜索结果?

问题描述

我正在尝试使用 2 个文本框查找此用户窗体的代码: 1

我有一张单独的数据表:
2

我需要使用 REF ID(在第 1 列中)进行搜索,它应该只在下面的 textbox2 中显示第 4 列(注释),并将 WordWrap 和 MultiLine 属性设置为 True。有人可以帮我吗?

我试过这个:

Private Sub CommandButton1_Click()
Dim Search As String
Dim FoundCell As Range, SearchRange As Range
Dim ws As Worksheet
Set ws = Worksheets("Database")
' search sheet change name as required
Set SearchRange = ws.Range("A1", ws.Range("J65536").End(xlUp))

Search = Me.jobid.Text

If Len(Search) = 0 Then Exit Sub

Set FoundCell = SearchRange.Find(What:=Search, LookIn:=xlValues, LookAt:=xlWhole)

If Not FoundCell Is Nothing Then
    Me.resultid.Value = FoundCell.Offset(0, 4).Value
Else
    MsgBox Search & Chr(10) & "Record Not Found", 48, "Not Found"
End If

End Sub

我收到错误

Me.resultid.Value = FoundCell.Offset(0, 4).Value

我究竟做错了什么?

标签: excelvbasearchtextboxuserform

解决方案


最主要的可能是您的偏移量。将其从 4 更改为 3:

Me.resultid.Value = FoundCell.Offset(0, 3).Value

另一个不正确的事情可能是你的SearchRange. 现在它从 A 列跨越到 J 列。据我所知,您只想查看 A 列(REF ID)。所以改成SearchRange这样:

Set SearchRange = ws.Range("A1", ws.Range("A65536").End(xlUp))

进行这些更改后,我能够搜索单元格 A2 中的“H001”,并将单元格 D2 中的值写入另一个文本框:

在此处输入图像描述


推荐阅读