Hallo,
ich werde nich wahnsinnig :D Kann mir bitte jemand sagen, was in meinem Beispiel das "= empty" macht? Ich dachte man nutzt den Befehl ".add" um keys/elemente zu einem dictionary hinzuzufügen.
Grundsätzlich iteriert der Code ja in Spalte 6 Zeile für Zeile und sobald er nach den Kritierien (hier like "Erste" or "B" or "C") etwas findet soll später danach gefiltiert werden. Aber wieso = empty?
Ich würde mich mega über Hilfe freuen.
Danke im Voraus
Sub MultiContainsAutofilter()
Dim vData
Dim shData As Worksheet
Dim d As Object
Dim i As Long
Set shData = ActiveSheet
vData = shData.UsedRange.Columns(6) ' hat immer nur eine Dimension right?
Set d = CreateObject("Scripting.Dictionary") 'also durch das d wird das Scripting.Dictionary aufgerufen
'Debug.Print (LBound(vData))
'Debug.Print (UBound(vData))
'Debug.Print (UCase$(vData(3, 1)))
For i = LBound(vData, 1) To UBound(vData, 1) 'LBound= untere(l=low)Grenze / Ubound (u=upper) obere Grenze 2. von der erste Dimension (deswegen die "1") von vData
If (vData(i, 1)) Like "*Erste*" Or (vData(i, 1)) Like "*B*" Or (vData(i, 1)) Like "*C*" Then 'Bei ersten Test also wenn Cells(1,6) = A usw. dann... hier nicht von der 1 irritieren lassen weil vData ja schon in der 6ten Spalte ist
d(vData(i, 1)) = Empty
'Debug.Print (vData(i, 1)) ' Ist der Wert/Inhalt der Zelle
End If
Next i
If d.Count > 0 Then shData.UsedRange.AutoFilter Field:=6, Criteria1:=d.keys, Operator:=xlFilterValues
' Debug.Print (d.keys.Name)
End Sub
|