2017-06-22 14 views
-1

Ich versuche eine riesige Liste von über 9000 Zeilen zu filtern. Jede Zeile ist ein einzelnes Projekt und alle Zeilen befinden sich in einer Tabelle "Table2"; das Blatt ist "Final Data"Excel Custom Filter mit VBA

die untere Grenze muss Filter ist "17-0034"; die obere Grenze ist „17-0152“

Wie ich zwischen diesen unteren & Obergrenze Wert filtern Sie als Text gelesen wird, und der letzte Teil des Codes nicht

Hier funktioniert der Code

Private Sub CommandButton2_Click() 
Sheets("Final Data").Select 
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=19, Criteria1:= _ 
    Array("Active", "Completed", "Main"), Operator:=xlFilterValues 
ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=20, Criteria1:= _ 
    "RTB" 

ActiveSheet.ListObjects("Table2").Range.AutoFilter Field:=1, Criteria1:= _ 
    ">=17-0034", Operator:=x1And, Criteria2:="<=17-0152", Operator:=xlFilterValues 
End Sub 
+1

Was ist Ihre Frage? –

+0

Ich habe meinen Post so bearbeitet, dass er hoffentlich weniger verwirrend wirkt. Der Code funktioniert nicht. und speziell bekomme ich Fehler nur auf den letzten Teil ActiveSheet.ListObjects ("Tabelle2") Range.AutoFilter Field:. = 1, Criteria1: = _ "> = 17-0034", Operator: = X1 und , Criteria2: = "<= 17-0152", Operator: = xlFilterValues ​​ – DougthePug

Antwort

0

x1And ist nicht definiert. Du konntest das leicht fangen, hast du Option Explicit benutzt.

Ersetzen Sie x1And dies mit xlAnd ('l' ell, nicht '1') und Ihr Filter wird gut funktionieren.

+0

Sie sind in der Tat richtig !!! Funktioniert wie ein Charme – DougthePug

+0

Ich hatte tatsächlich die Option Explicit verwendet, aber ich nahm an, dass es die Werte nicht mochte, die ich verwendete. Ich dachte nicht, dass es wegen des Textwerts möglich war – DougthePug

+0

Würdest du wissen, wie man dieselbe Operation tut, aber stattdessen die untere Grenze und die obere Grenze von einer Zelle liest? LBound: = A1; UBound: = A2 'Dim a, b als Variante a = Arbeitsblätter (" Willkommen "). Zellen (1," A "). Wert b = Arbeitsblätter (" Willkommen "). Zellen (2," A "). Wert ActiveSheet .ListObjects ("Table2"). Range.AutoFilter Feld: = 1, Criteria1: = _> = a, Operator: = xlAnd, Criteria2: = <= b, Operator: = xlFilterValues ​​' – DougthePug