Función VBA DateAdd

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

wave wave wave wave wave