Funzione VBA IsDate

Funzione IsDate di Excel VBA

IsDate è la funzione VBA che verifica se il valore specificato è la data o meno. Se il valore fornito o il valore di riferimento dell'intervallo è il valore della data, otterremo il risultato come "VERO", se il valore non è il valore della data, il risultato sarà "FALSO". Quindi, il risultato è un valore BOOLEANO, cioè TRUE o FALSE.

Di seguito è riportata la sintassi della funzione IsDate.

L'espressione non è altro che il valore che stiamo cercando di verificare se è la data o meno.

Come utilizzare la funzione IsDate di VBA?

Puoi scaricare questo modello VBA IsDate Excel qui - Modello VBA IsDate Excel

Verificheremo se il valore "5.01.19" è un valore di data o meno.

Per prima cosa avviare la procedura macro excel.

Codice:

 Sub IsDate_Example1 () End Sub 

Definire la variabile per memorizzare il valore della data e poiché il valore sarà il valore della data, assegnare il tipo di dati solo come "Data".

Codice:

 Sub IsDate_Example1 () Dim MyDate As Date End Sub 

Ora assegna il valore di “5.1.19” alla variabile “MyDate”.

Codice:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" End Sub 

Apri la finestra del messaggio in VBA ora

Codice:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox (End Sub 

In questa finestra di messaggio, testeremo se il valore della data fornito alla variabile "MyDate" è o meno la data utilizzando la funzione "IsDate". Innanzitutto, apri la funzione "IsDate".

Codice:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox IsDate (End Sub 

L'espressione è il valore che stiamo testando per scoprire se è Data o meno. Poiché abbiamo già memorizzato il valore nella variabile "MyDate", fornire solo il nome della variabile.

Codice:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox IsDate (MyDate) End Sub 

Ok, ora esegui il codice e guarda cosa otteniamo nella finestra del messaggio.

Wow!!! Il risultato è VERO .

Ti starai chiedendo come ha riconosciuto il valore "5.1.19" come data.

Il motivo per cui ha restituito il risultato come VERO perché quando guardi il valore dato "5.1.19" è la forma abbreviata della data "05.01.2019" quindi Excel è abbastanza brillante da riconoscerlo come data, quindi il risultato è vero.

Ora arriva la cosa difficile, per lo stesso valore quello che faremo è cambiare la forma abbreviata dell'anno dal 19 al 2019.

Codice:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "5.1.2019" MsgBox IsDate (MyDate) End Sub 

Ora esegui il codice e guarda il risultato.

Questa volta ha restituito il risultato come FALSO perché la parte "giorno e mese" della data è in forma abbreviata ma la parte dell'anno è nella forma completa "AAAA", quindi ISDATE non può riconoscere che ha una data, quindi il risultato è FALSO.

Ora guarda il codice sottostante.

Codice:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05.01.2019" MsgBox IsDate (MyDate) End Sub 

Ho menzionato il formato del giorno intero e del mese intero usando 0, eseguiamo il codice e vediamo il risultato della funzione IsDate.

Anche questa volta andiamo ad ottenere il risultato come FALSO .

Ora cambia il codice come segue.

Codice:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019" MsgBox IsDate (MyDate) End Sub 

Invece del punto (.) Come separatore, abbiamo inserito una barra (/) come separatore. Ora esegui il codice e guarda il risultato.

Questa volta abbiamo ottenuto il risultato come VERO .

Questo è il motivo per cui ti ho detto all'inizio dell'articolo che "Date" è una cosa delicata.

Ora quello che farò è unire la data e l'ora insieme.

Codice:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019 15:26:24" MsgBox IsDate (MyDate) End Sub 

Quello che ho aggiunto sopra è la porzione di tempo di "15:26:24" davanti alla data. Ora esegui il codice e guarda il risultato.

Anche questa volta abbiamo ottenuto il risultato come VERO perché DATA E ORA in Excel sono le stesse cose e memorizzate come numeri di serie. Il numero intero rappresenta la parte della data e le posizioni decimali rappresentano la parte dell'ora.

Cose da ricordare qui

  • IsDate restituisce il risultato di tipo booleano, ovvero TRUE o FALSE.
  • IsDate è disponibile solo come funzione VBA.
  • Solo le date formattate valide vengono trattate come la data, altrimenti verranno trattate come valori di testo e restituiranno il risultato come FALSO.