Filtro automatico che incasina il formato della data?
Sto cercando di utilizzare il filtro automatico per filtrare una colonna di date all'interno di un intervallo di date. Ho scritto il mio codice e ho notato che non funzionava, quindi l'ho reso stupido e ho provato a registrare una macro. Sembra che nemmeno la registrazione di una macro funzioni perché sta rovinando i formati della data. Ho Excel in spagnolo e sto cercando di utilizzare il formato data gg/mm/aaaa. Ho deciso di registrare una macro filtrando dal 10/01/2020 al 20/01/2020 e mi dà il seguente codice:
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AA$95").AutoFilter Field:=18, Criteria1:= _
">=10/01/2020", Operator:=xlAnd, Criteria2:="<=20/01/2020"
Quando l'ho fatto manualmente mentre stavo registrando la macro, ha filtrato 3 risultati, ma quando provo a eseguire di nuovo la macro, incasina il formato della data. Se controllo il filtro applicato mi dice "è dopo o uguale a: 01/10/2020" e "è prima o uguale a: 20/01/2020". Qualche idea sul motivo per cui sta cambiando il formato di una sola data quando eseguo il codice e come risolverlo?
Grazie
Ho anche provato a utilizzare la funzione Format
ActiveSheet.Range("$A$1:$AA$95").AutoFilter Field:=18, Criteria1:= _
">=" & Format("10/01/2020", "dd/mm/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format("20/1/2020", "dd/mm/yyyy")
E cambia ancora "10/01/2020" in "01/10/2020" durante il filtraggio
Risposte
A Excel piace assumere la formattazione. Credo che sia basato sulle impostazioni della tua lingua. Puoi riformattare usandoActiveSheet.Range("$A$1:$AA$95").NumberFormat = "dd/mm/yyyy"
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AA$95").AutoFilter Field:=18, Criteria1:= _
">=10/01/2020", Operator:=xlAnd, Criteria2:="<=20/01/2020"
ActiveSheet.Range("$A$1:$AA$95").NumberFormat = "dd/mm/yyyy"