2009-05-21 8 views
0

J'essaie d'utiliser du code pour filtrer dynamiquement une feuille de calcul en fonction de la date actuelle.Codage des filtres de texte dans Excel 2007

Je stocke la date dont j'ai besoin de filtrer comme "CurrDay" et j'essaye de rappeler cette date stockée dans mon algorithme de filtre. Cela ne fonctionne pas et j'ai besoin de comprendre comment faire pour finir ce code. Chaque fois que je lance le code, il renvoie le nom CurrDay dans le filtre au lieu de la date stockée sous la variable CurrDay.

Il me manque quelque chose ici et j'ai besoin de direction. Toute aide est appréciée.

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 

Répondre

1

Vous devez concaténer la variable avec la chaîne de critères.

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

En outre, il est préférable d'utiliser « UsedRange » au lieu de faire une grande gamme car il ne fonctionne pas si vos données étend au-delà de votre gamme arbitraire et est un gaspillage de ressources si elle ne fonctionne pas.

Questions connexes