Función CDate de Excel VBA

¿Has oído hablar de la función o comando mediante el cual podemos convertir cualquier cosa en fecha y hora? Sí, junto con la función Fecha tenemos la función CDate en VBA que lo hace. CDate es la función de Excel, pero esto también se puede hacer en VBA. CDate convierte cualquier cosa menos al formato de fecha estándar. Esto se puede usar para convertir el tiempo y la fecha.

La sintaxis de CDate es la sintaxis más fácil que hemos visto. CDate solo considera expresiones como Fecha y hora en cualquier formato como entrada. A continuación se muestra la sintaxis.

Solo necesitamos alimentar cualquier número, fecha u hora en cualquier formato que tengamos y CDate lo convertirá automáticamente al formato estándar de fecha y hora.

¿Cómo utilizar la función Excel VBA CDate?

Aprenderemos cómo usar una función Vate CDate con algunos ejemplos en Excel.

Puede descargar esta plantilla de Excel Vate CDate aquí - Plantilla de VBA CDate Excel

VBA CDate - Ejemplo # 1

Tomaremos un ejemplo simple primero. En este ejemplo, trataremos de convertir un tipo simple de fecha a un formato estándar que en realidad está incorporado en Excel de manera predeterminada.

Siga los pasos a continuación para usar la función CDate en VBA.

Paso 1: abra un módulo que está disponible en la pestaña del menú Insertar como se muestra a continuación.

Paso 2: Ahora escriba el subprocedimiento de VBA CDate en cualquier nombre como se muestra a continuación. Pero se recomienda escribir el nombre del subprocedimiento en el nombre del trabajo realizado principalmente.

Código:

 Sub VBA_CDate () End Sub 

Paso 3: Ahora declara una variable, digamos que es Input1 como String . Considerando el tipo de datos como Cadena porque citaremos la entrada en la combinación de números y alfabetos.

Código:

 Sub VBA_CDate () Dim Input1 como String End Sub 

Paso 4: Ahora declararemos otra variable por la cual veremos el resultado. Y esta variable se usará para ver las fechas.

Código:

 Sub VBA_CDate () Dim Input1 como String Dim FormatDate As Date End Sub 

Paso 5: Ahora elija cualquier fecha que esté en la combinación de números y alfabetos y cite eso en comillas invertidas como se muestra a continuación.

Código:

 Sub VBA_CDate () Dim Input1 como String Dim FormatDate As Date Input1 = "Sept 1, 2019" End Sub 

Paso 6: Para convertir la fecha de entrada a un formato estándar, utilizaremos la función CDate como se muestra a continuación con la variable FormatDate que se declaró anteriormente. Y use el valor almacenado en la variable Input1.

Código:

 Sub VBA_CDate () Dim Input1 como String Dim FormatDate As Date Input1 = "Sept 1, 2019" FormatDate = CDate (Input1) End Sub 

Paso 7: Y para ver el resultado, usaremos Msgbox para asignarlo con la función FormatDate de Date.

Código:

 Sub VBA_CDate () Dim Input1 como String Dim FormatDate As Date Input1 = "Sept 1, 2019" FormatDate = CDate (Input1) MsgBox FormatDate End Sub 

Paso 8: Ahora ejecuta el código presionando la tecla F5 o haciendo clic en el botón Reproducir. Obtendremos la fecha que hemos elegido como 1 de septiembre de 2019, ahora se convierte al formato de fecha estándar como 1/9/2019 como se muestra a continuación.

Podemos probar diferentes combinaciones múltiples de fechas que realmente existen y ver qué tipo de salida estándar obtenemos.

VBA CDate - Ejemplo # 2

En este ejemplo, veremos diferentes tipos de fecha y hora que existen y qué tipo de salida obtendríamos al usar VBA CDate. Para esto, siga los pasos a continuación:

Paso 1: escriba el subprocedimiento de VBA CDate como se muestra a continuación.

Código:

 Sub VBA_CDate2 () End Sub 

Paso 2: Ahora declararemos 3-4 variables diferentes del tipo de datos Fecha. Declaremos la primera variable como Fecha1 y le daremos el tipo de datos como Fecha como se muestra a continuación.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date End Sub 

Paso 3: Ahora asigna cualquier número que queramos convertirlo en formato de Fecha. Hemos elegido un número aleatorio como 12345.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" End Sub 

Paso 4: De manera similar, defina otra variable Fecha2 como tipo de fecha Fecha como se muestra a continuación.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date End Sub 

Paso 5: Ahora nuevamente en la variable Fecha2, considere poner una fecha en cualquier formato. Aquí hemos mantenido el 12/3/45 como nuestra entrada de fecha.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" End Sub 

Paso 6: Además, nuevamente declararemos otra variable Date3 como Date.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date End Sub 

Paso 7: Aquí asignaremos el valor de cualquier momento como se muestra a continuación como 12:10 PM en formato de 24 horas.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" End Sub 

Paso 8: Ahora, por último, declararemos otra variable Date4 como Fecha.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date End Sub 

Paso 9: Y aquí le daremos un valor decimal como 0.123 o puede elegir cualquier valor según sea necesario.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" End Sub 

Ahora hay 2 formas de ver la salida de los valores almacenados en varias variables declaradas anteriormente. MsgBox solo nos permitirá ver todos los valores simultáneamente, pero al usar Debug.print nos permitirá ver todas las variables de salida de una vez.

Paso 10: Entonces, aquí es mejor si elegimos Debug.Print como se muestra a continuación. Y en la misma línea asigne todas las variables a partir de la Fecha 1 a la Fecha 4.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" Debug. Imprimir Fecha1, Fecha2, Fecha3, Fecha4 Fin Sub 

Paso 11: Y para ver el resultado, utilizaremos la ventana inmediata como se muestra a continuación. Para acceder a esto, vaya a la pestaña del menú Ver y seleccione Ventana Inmediata como se muestra a continuación.

Paso 12: Ahora ejecuta el código presionando la tecla F5 o haciendo clic en el botón Reproducir. Veremos, el tipo de datos de fecha nos ha dado la salida, pero no está en formato de datos estándar.

Paso 13: Para obtener los datos estándar, también usaremos CDate aquí. Entonces, asignaremos CDate para cada fecha y hora que usamos para diferentes variables como se muestra a continuación.

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("0.123") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Paso 14: Ahora ejecuta el código presionando la tecla F5 o haciendo clic en el botón Reproducir.

Veremos que la salida de Date y CDate es la misma, pero hay una diferencia básica común entre ambos. Y es decir, CDate puede convertir cualquier tipo de números al formato de fecha estándar.

Paso 15: Probemos cualquier texto o alfabeto con CDate y veamos qué obtenemos. Así que hemos ingresado un texto aleatorio como abc en la variable Date4 .

Código:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("abc") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Paso 16: Ahora ejecuta el código nuevamente. Obtendremos un cuadro de mensaje con un mensaje de error como No coinciden los tipos . Esto se debe a que CDate no puede leer y convertir texto a un formato estándar de fecha y hora.

Pros y contras de la función Excel VBA CDate

  • Esto puede convertir cualquier fecha u hora al formato estándar según sea necesario.
  • VBA CDate interpreta cualquier número como valor de fecha y luego lo convierte a un formato estándar.
  • No puede interpretar y convertir el texto en formato de fecha.

Cosas para recordar

  • CDate solo puede considerar los números como entrada, pero ese número puede estar en cualquier formato.
  • El valor del texto no se puede convertir.
  • Si alimentamos una hora o fecha que ya está en el formato estándar, nuevamente devolverá el mismo valor que la salida.
  • La función Fecha y CDate funcionan de la misma manera. Mientras que por CDate podemos convertir tanto la hora como la fecha.

Artículos recomendados

Esta es una guía para la función Vate CDate. Aquí discutimos cómo usar la función CDate en Excel usando el código VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Formato de fecha de VBA
  2. Función DATEDIF de Excel
  3. VBA DateSerial
  4. Función DATEDIF de Excel

Categoría: