Hi Leute,
ich hab hier mal wieder ein merkwürdiges Problemchen. Hab auch schon gegoogelt aber nichts gefunden, was mit meinem Problem vergleichbar ist. Die Probleme der Anderen beziehen sich meist auf ein varibles Kriterium und sind relativ leicht lösbar.
Ich habe eine intelligente Tabelle (beginnend in Spalte A, Kopfzeile ist Zeile 5) mit einem Autofilter. Nun möchte ich Filter 4 nach dem Wert 0 filtern. Das klappt soweit auch ganz gut, wenn ich die 4 direkt in den Code reinschreibe.
With Daten.ListObjects("Tabelle2").Range
.AutoFilter Field:=4, Criteria1:=0
End With
Es wird korrekt gefiltert. Wenn ich jedoch die 4 durch eine Funktion oder eine Variable ersetze, welche den Wert 4 korrekt zurückgibt (Das habe ich kontrolliert) dann erhalte ich den Laufzeitfehler 1004 "Die AutoFilter-Methode des Range-Objektes konnte nicht ausgeführt werden.
With Daten.ListObjects("Tabelle2").Range
.AutoFilter Field:=getColumn("InvType"), Criteria1:=0
End With
geht also nicht und
Dim fldInvType
With Daten.ListObjects("Tabelle2").Range
fldInvType = getColumn("InvType")
.AutoFilter Field:=fldInvType, Criteria1:=0
End With
geht auch nicht. Egal ob ich die Variable als Long, Integer oder Variant gestalte, ich erhalte immer den gleichen Fehler.
Die Funktion getColumn ist simpel und gibt, wie gesagt den korrekten Wert zurück.
Function getColumn(Name As String) As Integer
getColum = Application.Match(Name, Daten.Rows(5), 0)
End Function
Ist das bei euch auch so? Wie kann ich die 4 variabel gestalten? Es könnte ja sein, dass ich später Spalten einfügen möchte.
Mein Excel 2019 unter Windows 11
Gruß Mr. K.
|