Wie die filter-listbox-Werte auf der Grundlage eines Textbox-Wert
Ich habe eine textbox und eine listbox auf userform. Ich möchte zum filtern der Werte in der listbox basiert auf dem Wert, den ich eingeben in das Textfeld ein. Arbeitsblatt mit dem Namen TMP hat die Werte und ich filter es basiert auf textbox-change-Ereignis, sondern es wird automatisch beendet, wenn hinzufügen, dass die Werte für listbox.
Private Sub Textbox1_Change()
'On Error Resume Next
Dim fCell As Range, MyArr As Variant, i As Long
With TMP
.AutoFilterMode = False
.Range("A1").AutoFilter
.Range("A1").AutoFilter Field:=1, Criteria1:=Me.TextBox1.Value
End With
ListBox1.RowSource = ""
i = 0
For Each fCell In TMP.Range("A1:A" & TMP.Range("A" & TMP.Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
Me.ListBox1.AddItem fCell.Value, i
i = i + 1
Next fCell
End Sub
InformationsquelleAutor Rohan | 2017-03-18
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hoffe, dass das folgende Stück code ist, was Sie suchen.
Beachten Sie, dass dieser sub nicht nutzen
AutoFilter
auf dem BlattTMP
. Also, der sub ist ein bisschen schneller. Auch, wenn Sie möchten, filtern Sie Ihre Daten auf dem Blatt, das der sub nicht löschen /ändern Sie Ihre aktuellen Filtereinstellungen.Die Zeile am Ende
If Me.ListBox1.ListCount = 1 Then Me.ListBox1.Selected(0) = True
ist nicht wirklich notwendig, sondern eher für Ihre Bequemlichkeit. Es sorgt dafür, dass das Element wird automatisch ausgewählt, dieListBox
wenn es nur 1 Element in der Liste.InformationsquelleAutor Ralph