2017-05-02 2 views
0

Ich erhalte einen Fehler, wenn ich versuche, ein Makro auszuführen, das meine Daten basierend auf dem Datum in Spalte AN filtern soll. Ich möchte, dass das Datum abhängig ist, also sollte es alles von 2 Monaten vor dem heutigen Datum filtern.Kompilierungsfehler bei Autofilter durch dynamisches Datum

Sub Move2017() 
Macro 2017 Clear 
Dim DQ As Date 
DQ = dateserial(Year(Now), month(Now) - 2, 1) 
Range("A1:AZ100000").AutoFilter field:=40, Operator:= _ 
    xlFilterValues, Criteria2:=Array(1, DQ) 
End Sub 

Ich erhalte die folgenden Fehler: „Übersetzen Fehler: Falsche Anzahl von Argumenten oder ungültiger Eigenschaftszuweisung“

Irgendwelche Gedanken darüber, wie dieses Problem zu lösen?

Antwort

2

Try this:

Range("A1:AZ100000").AutoFilter field:=40, Criteria1:=">="&DQ, Operator:=xlAnd 

geprüft und Arbeiten für mich.

+0

hat perfekt funktioniert. Ich fühle mich, als ob ich Punkte für diesen Punkt verliere. – NeilD137

+2

@ NeilD137 Sie könnten Scott Kredit geben und als "ANSWER" markieren (Ich habe gesehen, dass Sie es bisher mit früheren Posts nicht getan haben, wissen Sie wie?) –

+0

Eigentlich, wenn Sie mir sagen könnten, wie, werde ich stellen Sie sicher, dass Sie vorwärts gehen – NeilD137

3

Nur für den Fall @ Scott Holtzman Lösung funktioniert nicht, manchmal die AutoFilter mit Date s kann schwierig sein, hängt genau, wie Sie die Zellen formatiert. In einigen Szenarien funktioniert es besser mit Double.

Auch können Sie Funktion viel einfacher verwenden, um ein Datum 2 Monate vor dem heutigen Datum zu erhalten.

Option Explicit 

Sub Move2017() 

Dim DQ As Double 

DQ = DateAdd("m", -2, Date) '<-- get the date 2 month prior to today's date 
Range("A1:AZ100000").AutoFilter field:=40, Criteria1:=">" & DQ, Operator:=xlAnd 

End Sub 
Verwandte Themen