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, sia che si tratti della data o meno.
Come utilizzare la funzione IsDate di VBA?
Verificheremo se il valore "5.01.19" è un valore di data o meno.
Per questo primo avvio, 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 trovare 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 specificato "5.1.19" , è la forma abbreviata della data "05.01.2019", quindi Excel è abbastanza brillante da riconoscerlo come data, quindi il risultato è VERO.

Ora ecco che 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 FALSE 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 di un giorno intero e di un mese intero utilizzando 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 tratterà come valori di testo e restituirà il risultato come FALSO.