我使用以下代码已经有一段时间了,它非常适合根据文本框值(Ralph 的代码)过滤列表框。
Private Sub Textbox1_Change()
Dim i As Long
Dim arrList As Variant
Me.ListBox1.Clear
If TMP.Range("A" & TMP.Rows.Count).End(xlUp).Row > 1 And Trim(Me.TextBox1.Value) <> vbNullString Then
arrList = TMP.Range("A1:A" & TMP.Range("A" & TMP.Rows.Count).End(xlUp).Row).Value2
For i = LBound(arrList) To UBound(arrList)
If InStr(1, arrList(i, 1), Trim(Me.TextBox1.Value), vbTextCompare) Then
Me.ListBox1.AddItem arrList(i, 1)
End If
Next i
End If
If Me.ListBox1.ListCount = 1 Then Me.ListBox1.Selected(0) = True
End Sub
我想将它与多列列表框一起使用(准确的 A->D 为 4)。原始帖子(标题为“如何根据文本框值过滤列表框值”)中的提示之一是替换:
Me.ListBox1.AddItem arrList(i, 1)
与
Me.Listbox.AddItem
Listbox.List(0, 0) = arrList(i, 1)
Listbox.List(0, 1) = arrList(i, 2)
但我不能让它工作。我已经被困在这个问题上好几天了,你能帮我让它工作吗?
谢谢...