VBA 如何让textbox中输入信息,在表格中搜索到,并实时显示在listbox中
当前text.box中输入批号后,listbox中只显示B列对应的批号,希望可以将其他列也一同显示出来,如果可以的话能带上A1,B1,C1,D1,E1标题。谢谢。...
当前 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
追问
追答
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
展开全部
我可以给你做,发文件来!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
私信,文件发过来改一下就行。
已经搞定发邮件给你了。
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询