Fecha Agregar descripción
La función DateAdd de VBA le permite sumar (o restar) días, meses, años, horas, trimestres, etc. a fechas u horas.
Ejemplos de fecha simple
Aquí hay un ejemplo simple de DateAdd:
123 | Sub DateAdd_Day ()MsgBox DateAdd ("d", 20, # 4/1/2021 #)End Sub |
Este código agregará 20 días (indicado por "d") a la fecha 4/1/2021:
En su lugar, podemos cambiar el argumento de intervalo de "d" a "m" para agregar 20 meses a la fecha 4/1/2021:
123 | Sub DateAdd_Month ()MsgBox DateAdd ("m", 20, # 4/1/2021 #)End Sub |
En lugar de mostrar la fecha en un cuadro de mensaje, podemos asignarla a una variable:
123456 | Sub DateAdd_Day2 ()Dim dt como fechadt = DateAdd ("d", 20, # 4/1/2021 #)MsgBox dtEnd Sub |
Sintaxis de DateAdd
En el Editor de VBA, puede escribir "DateAdd (" para ver la sintaxis de la función DateAdd:
La función DateAdd contiene 3 argumentos:
Intervalo: Unidad de tiempo (días, meses, años, etc.). Ingrese como cadena. (p. ej., "m" para el mes)
Configuración | Descripción |
---|---|
aaaa | Año |
q | Cuarto |
metro | Mes |
y | Día del año |
D | Día |
w | Día laborable |
ww | Semana |
h | Hora |
norte | Minuto |
s | Segundo |
Número: Valor numérico que representa el número de unidades de tiempo que se agregarán. (ej.20 para agregar 20 unidades)
Fecha: Fecha inicial. Consulte la siguiente sección.
Programación VBA | ¡Code Generator funciona para usted!
Ejemplos de la función DateAdd de Excel VBA
Fechas de referencia
Para comenzar, demostraremos diferentes formas de hacer referencia a fechas usando la función VBA DateAdd.
Cada una de estas funciones de DateAdd producen el mismo resultado:
123456789 | Sub DateAdd_ReferenceDates ()MsgBox DateAdd ("m", 2, # 4/1/2021 #)MsgBox DateAdd ("m", 2, DateSerial (2021, 4, 1))MsgBox DateAdd ("m", 2, DateValue ("1 de abril de 2022"))End Sub |
O puede hacer referencia a una celda que contiene una fecha:
12345 | Sub DateAdd_ReferenceDates_Cell ()MsgBox DateAdd ("m", 2, Rango ("C2"). Valor)End Sub |
O cree y haga referencia a una variable de fecha:
12345678 | Sub DateAdd_Variable ()Dim dt como fechadt = # 4/1/2021 #MsgBox DateAdd ("m", 2, dt)End Sub |
Sumar o restar fechas
Ya le mostramos cómo agregar a una fecha:
123456 | Sub DateAdd_Day2 ()Dim dt como fechadt = DateAdd ("d", 20, # 4/1/2021 #)MsgBox dtEnd Sub |
Puede restar de las fechas usando un número negativo (por ejemplo, -20 en lugar de 20):
123456 | Sub DateAdd_Day ()Dim dt como fechadt = DateAdd ("d", -20, # 4/1/2021 #)MsgBox dtEnd Sub |
¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!
Agregar diferentes unidades de tiempo
Años
123 | Sub DateAdd_Years ()MsgBox DateAdd ("aaaa", 4, # 4/1/2021 #)End Sub |
Cuarto
123 | Sub DateAdd_Quarters ()MsgBox DateAdd ("q", 2, # 4/1/2021 #)End Sub |
Mes
123 | Sub DateAdd_Months ()MsgBox DateAdd ("m", 2, # 4/1/2021 #)End Sub |
Día del año
123 | Sub DateAdd_DaysofYear ()MsgBox DateAdd ("y", 2, # 4/1/2021 #)End Sub |
Día
123 | Sub DateAdd_Days3 ()MsgBox DateAdd ("d", 2, # 4/1/2021 #)End Sub |
Día laborable
123 | Sub DateAdd_Weekdays ()MsgBox DateAdd ("w", 2, # 4/1/2021 #)End Sub |
Semana
123 | Sub DateAdd_Weeks ()MsgBox DateAdd ("ww", 2, # 4/1/2021 #)End Sub |
Programación VBA | ¡Code Generator funciona para usted!
Agregar a hoy
Estos ejemplos agregarán unidades de tiempo al día de hoy usando la función de fecha.
123456789 | Sub DateAdd_Year_Test ()Dim dtHoy como fechaDim dtMás tarde como fechadtToday = FechadtLater = DateAdd ("aaaa", 1, dtToday)MsgBox "Un año después es" & dtLaterEnd Sub |
123 | Sub DateAdd_Quarter_Test ()MsgBox "2 trimestres después es" & DateAdd ("q", 2, Date)End Sub |
Sumar y restar tiempo
La función DateAdd también funciona con Times. A continuación, se muestran algunos ejemplos de cómo sumar (o restar) tiempo a un tiempo:
Hora
Este ejemplo agregará 2 horas a un tiempo:
123 | Sub DateAdd_Hour ()MsgBox DateAdd ("h", 2, # 4/1/2021 6: 00: 00 #)End Sub |
Minuto
Este ejemplo restará 120 minutos de la hora actual:
123 | Sub DateAdd_Minute_Subtract ()MsgBox DateAdd ("n", -120, ahora)End Sub |
Segundo
123 | Sub DateAdd_Second ()MsgBox DateAdd ("s", 2, # 4/1/2021 6: 00: 00 #)End Sub |
Formato de fechas
Cuando las fechas (u horas) se muestran en Excel, UserForms o Messageboxes, debe indicar cómo deben mostrarse las fechas mediante la función de formato. Hemos incluido algunos ejemplos a continuación:
123456789101112131415161718 | Sub FormattingDatesTimes ()'Devuelve la fecha y hora actualesdt = Ahora ()'ex. 02/07/2021Rango ("B2") = Formato (dt, "mm / dd / aaaa")'ex. 2 de julio de 2022Rango ("B3") = Formato (dt, "mmmm d, aaaa")'ex. 2 de julio de 2022 09:10Rango ("B4") = Formato (dt, "mm / dd / aaaa hh: mm")'ex. 7.2.21 9:10 a. M.Rango ("B5") = Formato (dt, "m.d.yy h: mm AM / PM")End Sub |