Setzt Du ein Array ein, muss der Parameter Operator:=xlFilterValues gesetzt werden.
Aber, (und jetz komnts) Du kannst max. 2x mit Sternchen, also mit Platzhalter, suchen.
Jetzt bist an einem Wegpunkt angelangt, wo Du Dich entscheiden mussst.
Weiter mit Array oder anfangen mit SQL.
Weg Array:
Dazu musste alle Element in ein Array packen, welche *.AI oder *.BI etc sind und dann eben ohne Platzhalter filtern.
Ob Du ducrch die Elemente loopst und mit IF..Like... arbeitest ...oder in ein temp.Worksheet mit Duplicate entfernen bleibt Dir überlassen.
Weg SQL:
SELECT * FROM `Tabelle1$`WHERE [Spalte] NOT LIKE *:AI usw usf
Gut erkannt!
Das lässt sich natürlich auch kombinieren.
Per SQL alle Filterkriterien finden, in das Array packen (aber komplette Elemente, also ohne Platzhalter(!)) und dann den Parameter Operator:=xlFilterValues damit füttern.
Et violà !
Stichwort:
ADODB.Recordset (gerne auch die Recordset.Filter-Methode() anwenden anstelle der Where-clause)
Recordset -> Array
Array -> Autofilter
gruß
Marco
|