Filtro automatico che incasina il formato della data?

Aug 25 2020

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

Mech Aug 25 2020 at 02:39

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"