Este tutorial demostrará cómo obtener la fecha de hoy en VBA.
Hay un par de formas de obtener la fecha de hoy en el código VBA, a saber, usando el VBA Fecha() función o el VBA Ahora() funciones.
Función fecha ()
los Fecha() La función nos permite asignar la fecha de hoy a una variable y luego mostrar la fecha en la ventana inmediata en el Editor VBE para ver la fecha de hoy.
123 | Dim dtToday as DatedtToday = Fecha ()Debug.Print dtToday |
Alternativamente, podemos mostrar la fecha en un cuadro de mensaje.
12345 | Fecha de subpruebaDim dtToday as DatedtToday = Fecha ()Msgbox "La fecha de hoy es" & dtTodayEnd Sub |
Función Now ()
los Ahora() La función funciona de la misma forma que la función de fecha, pero incluye la hora.
12345 | Sub TestDate ()Dim dtHoy como fechadtToday = Ahora ()MsgBox "La fecha de hoy es" & dtTodayEnd Sub |
Formateo de fechas con VBA
Tanto en el Fecha() y el Ahora() funciones, la fecha está formateada en un estilo predeterminado según lo determinado por la configuración de nuestra PC. Podemos personalizar este formato usando el VBA Formato función. Como la función de formato devolverá una cadena, debemos declarar una CUERDA variable en lugar de una FECHA variable.
12345 | Sub TestDate ()Dim dtToday como cadenadtToday = Formato (Fecha, "dd mmmm aaaa")MsgBox "La fecha de hoy es" & dtTodayEnd Sub |
También podemos formatear el Ahora() función para incluir la parte de tiempo en un formato personalizado.
12345 | Sub FormatNow ()Dim dtToday como cadenadtToday = Formato (Ahora (), "dd mmmm aa hh: mm: ss am / pm")MsgBox dtTodayEnd Sub |
Comparación de 2 fechas con VBA
También podemos usar la función Fecha para comparar la fecha de hoy con una fecha diferente; es posible que deseemos calcular cuántos días faltan para un evento. Podemos hacer esto usando el VBA DateDiff () función que devolverá un número. Por tanto, podemos declarar unENTERO variable para almacenar el valor devuelto.
123456789 | Sub TestDateDiff ()Dim dtHoy como fechaDim dtAlguno día como fechaDim iDays como enterodtToday = FechadtSomeDay = "05/06/2021"iDays = DateDiff ("d", dtHoy, dtAlgunaDía)MsgBox "Hay" & iDays & "días entre las 2 fechas"End Sub |
Como las fechas se almacenan como números, también podríamos menos la segunda fecha de la primera para obtener la misma respuesta.
1 | iDays = dtToday - dtSomeDay |