VBA 如何让textbox中输入信息,在表格中搜索到,并实时显示在listbox中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA 如何让textbox中输入信息,在表格中搜索到,并实时显示在listbox中相关的知识,希望对你有一定的参考价值。

当前 text.box 中输入批号后,listbox中只显示B列对应的批号,希望可以将其他列也一同显示出来,如果可以的话能带上A1,B1,C1,D1,E1 标题。谢谢。

答:条件假设:

文本框:TextBox1;列表框:ListBox1;数据区域左上角为A1;此工作表为活动工作表。

添加TextBox1事件代码:

Private Sub TextBox1_Change()
    Dim Arr() As Variant
    Dim LastRow As Long, Count As Long, i As Long
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    ReDim Arr(1 To 5, 1 To LastRow)
    Count = 1
    For i = 2 To LastRow
        If Cells(i, "B") = TextBox1.Text Then
            Arr(1, Count) = Cells(i, "A")
            Arr(2, Count) = Cells(i, "B")
            Arr(3, Count) = Cells(i, "C")
            Arr(4, Count) = Cells(i, "D")
            Arr(5, Count) = Cells(i, "E")
            Count = Count + 1
        End If
    Next
    ReDim Preserve Arr(1 To 5, 1 To Count)
    ListBox1.ColumnCount = 5
    ListBox1.List = Application.Transpose(Arr)
End Sub

追问

感谢您的答复,已经成功实现,还有个问题需要请教您,

假设listbox中的数据在窗体打开就带出,那么如果我在textbox中输入对应批号是否可以在listbox 中自动选定(即定位)我想要查找的这个信息。

追答

Private Sub TextBox1_Change()
With ListBox1
For i = 0 To .ListCount - 1
.Selected(i) = False
Next i
If TextBox1.Text "" Then
.MultiSelect = fmMultiSelectMulti
For i = 0 To .ListCount - 1
''与列表框的第5列值匹配,可更改
If TextBox1.Text = .List(i, 4) Then
.Selected(i) = True
End If
Next i
End If
End With
End Sub

参考技术A 我可以给你做,发文件来! 参考技术B

私信,文件发过来改一下就行。

已经搞定发邮件给你了。

Private Sub TextBox1_Change()
    ListBox1.Clear
    Set rng = Sheets(1).Columns(2).Find(TextBox1.Text, lookat:=xlWhole)
    If Not rng Is Nothing Then
        For j = rng.Row + 1 To Sheets(1).Cells(Rows.Count, 2).End(3).Row
            If Sheets(1).Cells(j, 2) = rng Then
                ListBox1.AddItem (vr(Range("A1:E1")))
                ListBox1.AddItem (vr(Range("A" & rng.Row & ":E" & rng.Row)))
            End If
        Next j
    End If
End Sub
Private Function vr(rng As Range)
    For Each cell In rng
        s = s & "|" & cell.Value
    Next
    vr = s
End Function

以上是关于VBA 如何让textbox中输入信息,在表格中搜索到,并实时显示在listbox中的主要内容,如果未能解决你的问题,请参考以下文章

如何在子表单中搜索特定值以返回 VBA 结果

如何在 MS Access VBA 上将文本框注释值输入设置为表格数据插入

word VBA如何实现TextBox中的文字居中对齐,文本框有相关的属性么?谢谢

如何通过vba的方式让文本框失去焦点以后自动显示成日期式样?

vba textbox在失去焦点后如何重新获取焦点

excel vba 将一个文本框TEXTBOX1限定只能输入数字,如果输入其他汉字或者字母提示,输入错误,请输入数字