VBA – Obtener la fecha de hoy (fecha actual)
In this Article
Este tutorial demostrará cómo obtener la fecha de hoy en VBA.
Hay un par de maneras de obtener la fecha de hoy en el código VBA, a saber, utilizando la función VBA Date() o las funciones VBA Now().
Función Date()
La función Date () devuelve la fecha de hoy.
En el siguiente ejemplo, asignamos la fecha de hoy a una variable y luego mostramos la fecha en la ventana inmediata del Editor VBE.
Dim dFechaActual As Date
dFechaActual = Date
Debug.Print dFechaActual
Alternativamente, podemos mostrar la fecha en un cuadro de mensaje.
Sub PruebaFecha
Dim dtToday as Date
dtToday = Fecha()
Msgbox "La fecha de hoy es " & dtToday
End Sub
Función Now()
La función Now( ) funciona de la misma manera que la función de fecha, pero incluye la hora.
Sub PruebaFechaHora()
Dim dtHoy As Date
dtHoy = Now()
MsgBox "La fecha de hoy es " & dtHoy
End Sub
Formateando Fechas con VBA
Tanto en la función Date() como en la función Now(), la fecha se formatea con un estilo predeterminado por la configuración de nuestro PC. Podemos personalizar este formato utilizando la función Formato de VBA. Como la función de formato devolverá una cadena, necesitamos declarar una variable STRING en lugar de una variable DATE.
Sub PruebaFechaFormateada()
Dim dFecha As String
dFecha = Format(Date, "dd mmmm yyyy")
MsgBox "La fecha de hoy es " & dFecha
End Sub
También podemos formatear la función Now() para incluir la parte de la hora en un formato personalizado.
Sub NowFormateado()
Dim dAhora As String
dAhora = Format(Now(), "dd mmmm yy hh:mm:ss am/pm")
MsgBox dAhora
End Sub
Comparación de 2 fechas con VBA
También podemos utilizar la función Date para comparar la fecha de hoy con una fecha diferente – ¡podríamos querer calcular cuántos días faltan para un evento! Podemos hacerlo utilizando la función VBA DateDiff() que devolverá un número. Por lo tanto, podemos declarar una variable INTEGER para almacenar el valor devuelto.
Sub Prueba_DateDiff()
Dim dHoy As Date
Dim dOtroDia As Date
Dim diferenciaDias As Integer
dHoy = Date
dOtroDia = "05/06/2022"
diferenciaDias = DateDiff("d", dHoy, dOtroDia)
MsgBox "Hay " & diferenciaDias & " días entre las 2 fechas"
End Sub
Como las fechas se almacenan como números, también podríamos restar la segunda fecha de la primera para obtener la misma respuesta.
diferenciaDias = dHoy - dOtroDia