Wie kann diese Lösung geändert werden, um mit Zahlen zu arbeiten? Bis jetzt funktioniert es nur, wenn die Filterphrase Text ist.VBA zum Filtern von Daten während der Eingabe (Zahlen)
http://chandoo.org/wp/2015/08/22/filter-as-you-type-excel/
Wie kann diese Lösung geändert werden, um mit Zahlen zu arbeiten? Bis jetzt funktioniert es nur, wenn die Filterphrase Text ist.VBA zum Filtern von Daten während der Eingabe (Zahlen)
http://chandoo.org/wp/2015/08/22/filter-as-you-type-excel/
die Schritte, die die Verbindung verwendet haben und dann die Range („$ B $ 4: $ B $ 5000“) den folgenden Code ersetzen Abschnitte mit den tatsächlichen Daten, die Sie filtern möchten. Dies setzt auch voraus, dass Sie das Textfeld mit Zelle A1 verknüpfen.
Private Sub TextBox1_Change()
ActiveSheet.Range("$B$4:$B$5000").AutoFilter Field:=1, Criteria1:="" & CStr(Excel.ActiveSheet.Range("A1").Value) & ""
End Sub
Zusätzlich können Sie alle Werte erhalten, die diese ganze Zahl in der Zahl enthalten und man kann die folgenden (obwohl deutlich langsamer)
Private Sub TextBox1_Change()
Application.ScreenUpdating = False
vCheck = CStr(Range("A1").Value)
For Each vCell In Range("B5:B5000")
vValue = CStr(vCell.Value)
If Not CBool(InStr(1, vValue, vCheck, vbBinaryCompare)) Then
hideRow = vCell.Row
Rows(hideRow).Hidden = True
Else
hideRow = vCell.Row
Rows(hideRow).Hidden = False
End If
Next vCell
Application.ScreenUpdating = True
End Sub
Works verwenden, wie erwartet, wenn Datenbereich in einer Spalte ist. Kann diese Lösung für Daten in mehreren Spalten mit nur einem Textfeld übernommen werden? – Rayearth
Sie können dies tun, indem Sie eine einzelne Spalte mit einer if-Anweisung erstellen, die mehrere Spalten betrachtet und nach dieser kombinierten Spalte filtert. dh wenn A = 2 oder B = 2 Dann 1 Else 0 und filtere nur für Werte in Spalte C (die if-Anweisung), die den Wert 1 haben (dh die von dir eingestellte Bedingung erfüllen) – TsTeaTime
Danke, ich werde es versuchen später. Sehr geschätzt. – Rayearth