2009-05-21 2 views
0

Ich versuche Code dynamisch zu filtern, basierend auf dem aktuellen Datum.Codieren von Textfiltern in Excel 2007

Ich speichere das Datum, das ich als "CurrDay" filtern muss, und ich versuche, das gespeicherte Datum wieder in meinen Filteralgorithmus zurückzurufen. Es funktioniert nicht und ich muss herausfinden, wie man das macht, um diesen Code zu beenden. Jedes Mal, wenn ich den Code ausführe, wird der CurrDay-Name im Filter anstelle des Datums zurückgegeben, das unter der CurrDay-Variablen gespeichert ist.

Ich vermisse hier etwas und ich brauche eine Richtung. Jede Hilfe wird geschätzt.

Code:

Sub Finishing_A59_Filter() 
' 
' Finishing_A59_Filter Macro 

' This macro will activate the A59 and Filter it properly for standard orders 
' 

'This macro does not include the VMI's and APS orders in the code 
' 
' 

Dim Currday As Date 

    Currday = Date + 7 
    UName = Application.UserName 


    Workbooks.Open Filename:="G:\Copy Modified A59 5-19-2009.xlsm", UpdateLinks _ 
     :=0 
    Range("M2").Select 
    ActiveCell.Value = Currday 

    Columns("Q:Q").Select 
    Selection.NumberFormat = "mm/d/yyyy" 

    ' Filter the sheet to remove VMI's and APS orders 

    ActiveSheet.Range("$A$3:$AA$2941").AutoFilter Field:=23, Criteria1:=Array(_ 
     "01", "04", "06", "08", "09", "10", "15", "25", "="), Operator:=xlFilterValues 

    ' Set the proper date range for the sheet - This needs to be seven days beyond the current date 

    ActiveSheet.Range("$A$3:$AA$2941").AutoFilter Field:=17, Criteria1:= _ 
     "<=Currday", Operator:=xlAnd 

Antwort

1

Sie müssen die Variable mit dem Kriterium-Zeichenfolge verketten.

ActiveSheet.UsedRange.AutoFilter Field:=17, Criteria1:= _ 
     "<=" & Currday, Operator:=xlAnd 

Außerdem ist es besser „Usedrange“ zu verwenden, anstatt einen großen Bereich zu machen, weil es nicht, wenn Ihre Daten über Ihre beliebigen Bereich erstreckt funktioniert und ist eine Verschwendung von Ressourcen, wenn es nicht der Fall ist.