Función VBA IsDate

Función IsDate de Excel VBA

IsDate es la función de VBA que prueba si el valor dado es la fecha o no. Si el valor proporcionado o el valor de referencia del rango es el valor de la fecha, obtendremos el resultado como "VERDADERO", si el valor no es el valor de la fecha, obtendremos el resultado como "FALSO". Entonces, el resultado es un valor BOOLEANO, es decir, VERDADERO o FALSO.

A continuación se muestra la sintaxis de la función IsDate.

La expresión no es más que el valor que estamos tratando de probar, sea la fecha o no.

¿Cómo utilizar la función VBA IsDate?

Puede descargar esta plantilla de Excel de VBA IsDate aquí - Plantilla de Excel de VBA IsDate

Probaremos si el valor "5.01.19" es un valor de fecha o no.

Para esto, primero inicie el procedimiento de macro de Excel.

Código:

 Sub IsDate_Example1 () End Sub 

Defina la variable para almacenar el valor de la fecha y dado que el valor será el valor de la fecha, asigne el tipo de datos como “Fecha” solamente.

Código:

 Sub IsDate_Example1 () Dim MyDate As Date End Sub 

Ahora asigne el valor de "5.1.19" a la variable "MyDate".

Código:

 Sub IsDate_Example1 () Dim MyDate como fecha MyDate = "5.1.19" End Sub 

Abra el cuadro de mensaje en VBA ahora

Código:

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

En este cuadro de mensaje, probaremos si el valor de fecha proporcionado a la variable "MyDate" es la fecha o no mediante la función "IsDate". Primero, abra la función "IsDate".

Código:

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

La expresión es el valor que estamos probando para encontrar si es Fecha o no. Como ya hemos almacenado el valor de la variable "MyDate", proporcione solo el nombre de la variable.

Código:

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

Ok, ahora ejecuta el código y mira lo que obtenemos en el cuadro de mensaje.

¡¡¡Guau!!! El resultado es VERDADERO .

Debe preguntarse cómo reconoció el valor "5.1.19" como la fecha.

La razón por la que ha devuelto el resultado como VERDADERO porque cuando observa el valor dado "5.1.19" es la forma corta de la fecha "05.01.2019", por lo que Excel es lo suficientemente brillante como para reconocerlo como fecha, por lo que el resultado es verdad.

Ahora aquí viene lo complicado, por el mismo valor lo que haremos es cambiar la forma corta del año de 19 a 2019.

Código:

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

Ahora ejecute el código y vea el resultado.

Esta vez ha devuelto el resultado como FALSO porque la parte de "día y mes" de la fecha está en formato corto, pero la parte del año está en forma completa de "AAAA" por lo que ISDATE no puede reconocer que tiene una fecha, por lo que el resultado es FALSO.

Ahora, mire el siguiente código.

Código:

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

He mencionado el formato de día completo y mes completo usando 0, ejecutemos el código y veamos el resultado de la función IsDate.

Esta vez también obtuvimos el resultado como FALSO .

Ahora cambie el código de la siguiente manera.

Código:

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

En lugar del punto (.) Como separador, hemos introducido barra inclinada (/) como separador. Ahora ejecute el código y vea el resultado.

Esta vez obtuvimos el resultado como VERDADERO .

Ésta es la razón por la que les dije al principio del artículo que la “fecha” es algo delicado.

Ahora lo que haré es combinar la fecha y la hora.

Código:

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

Lo que he agregado arriba es la porción de tiempo de “15:26:24” antes de la fecha. Ahora ejecute el código y vea el resultado.

Esta vez también obtuvimos el resultado como VERDADERO porque FECHA Y HORA en Excel son las mismas cosas y se almacenan como números de serie. El número entero representa la parte de la fecha y los lugares decimales representan la parte del tiempo.

Cosas para recordar aquí

  • IsDate devuelve el resultado de tipo booleano, es decir, VERDADERO o FALSO.
  • IsDate solo está disponible como función de VBA.
  • Solo las fechas con formato válido se tratan como la fecha o, de lo contrario, se tratarán como valores de texto y devolverán el resultado como FALSO.