Confronto delle date in VBA
Determinazione del tipo
Non è necessario convertire le date nel tipo di dati "Data" per effettuare confronti se sono già in quel tipo. Puoi sapere se una variabile è "Data" usando un paio di metodi. Esaminare la sezione delle dichiarazioni all'inizio di una procedura VBA. Questa sezione è la parte in cui dichiari tutte le variabili usando la parola chiave "Dim". Le tue variabili di data saranno dichiarate con istruzioni come le seguenti: "Dim d1 as Date". Un altro modo per sapere se la variabile è del tipo "Data" è rivedere i compiti assegnati a quella variabile. Questi incarichi useranno il carattere "#", che indica un tipo "Data". Ad esempio, la seguente istruzione assegna la data "12/1/2001" alla variabile "D1" che è "Data".
D1 = # 12/1/2001 #
Come convertire nel tipo di dati "Data"
Per confrontare le date in VBA devi prima avere due date memorizzate in "Data", che è uno dei diversi tipi di valori in VBA. Il tipo "Data" è un'istanza speciale dell'intero tipo di dati, quindi confrontare le date è essenzialmente lo stesso del confronto tra numeri interi. Se le date non sono ancora in "Data", dovrai convertirle. Puoi farlo usando la funzione CDate. Ad esempio, eseguire la seguente istruzione per convertire la stringa "12/1/2001" in un tipo "Data":
D1 = CDate ("12/1/2001")
Il confronto
Se si desidera verificare se la data in una variabile "Data" si verifica prima di un'altra, utilizzare il simbolo "minore di" come mostrato nell'esempio seguente:
Se (d1 <d2)
Utilizzare il simbolo 'maggiore di' per verificare se una data si verifica dopo l'altra e utilizzare il simbolo 'uguale' per sapere se i valori di entrambe le variabili si riferiscono alla stessa data.
Programma di esempio
Scrivi un programma di esempio che converta e confronta le date, quindi puoi fare riferimento a quel codice quando scrivi programmi VBA più complessi per eseguire quella procedura. Aprire l'ambiente di programmazione in una qualsiasi delle applicazioni di Office facendo clic sul pulsante "Visual Basic" nella scheda "Sviluppatore". Quindi incollare il seguente programma nella finestra centrale dell'ambiente. Usa la funzione "CDate" per convertire stringhe in date e fa tre diversi confronti tra due di esse. Esegui il programma premendo "F5" e osserva l'uscita controllando la finestra "Immediata".
Public Sub CompareDates () Dim d1, d2 As Date d1 = CDate ("12/1/2001") d2 = CDate ("12/1/2002") If (d1 d2) Then Debug.Print "La data 1 si verifica dopo data 2. " If (d1 = d2) Then Debug.Print "La data 1 è uguale alla data 2." End Sub