VBA – Función CDate – Convertir Cadena a Fecha
Este breve tutorial demostrará cómo convertir una Cadena a una Fecha en VBA.
Las fechas en Excel se almacenan como números, y luego se formatean para mostrarse como una fecha. El día 1 en el mundo de Excel fue el 1 de Enero de 1900 (Windows por defecto) o el 1 de Enero de 1904 (Macintosh por defecto) – lo que significa que el 5 de Agosto de 2021 es el día 44413 desde el 1 de Enero de 1900. Para convertir una cadena a una fecha en Excel, primero necesitamos convertir la cadena a un número, y luego convertir ese número a la fecha.
Función CDate
Podemos utilizar una función llamada CDate en VBA para convertir una cadena en una fecha.
Sub ConvertirFecha()
Dim dte As Single
Dim strD As String
strD = "05/10/2020"
dte = CDate(strD)
MsgBox dte
End Sub
Como hemos declarado una variable numérica (dte como Single), el msgbox devolverá el número que hace referencia a la fecha introducida.
Es importante que introduzcamos el año utilizando los 4 dígitos del año (es decir, 2020 y no sólo 20), de lo contrario el número devuelto podría no ser el esperado. Excel no interpreta la parte del año de la fecha – esto lo controla el Panel de Control de nuestro PC.
Sin embargo, si declaramos las variables como una variable de fecha, el cuadro de mensaje devolverá el número convertido a una fecha.
Sub ConvertirFecha()
Dim dte As Date
Dim strD As String
strD = "05/10/2020"
dte = CDate(strD)
MsgBox dte
End Sub
Podemos llevar esto un paso más allá y formatear la fecha al tipo de formato de fecha que nos gustaría ver.
Sub ConvertirFecha()
Dim dte As String
Dim strD As String
strD = "05/10/2020"
dte = Format(CDate(strD), "dd mmmm yyyy")
MsgBox dte
End Sub
En este ejemplo, estamos convirtiendo la cadena en una fecha, y luego de nuevo en una cadena
Si omitiéramos el año por completo, Excel asume el año actual.