Cómo utilizar la función DateAdd de VBA en Excel

  • Compartir Este
Hugh West

En Función DateAdd de VBA se encuentra en la categoría de fecha y hora de Excel Funciones VBA Con esta función podemos sumar o restar años, meses, días, trimestres e incluso diferentes intervalos de tiempo como horas, minutos o segundos a partir de una fecha determinada. El tratamiento de la fecha y la hora en los cálculos diarios para generar informes o realizar comparaciones es una situación habitual. En Excel, el uso de funciones VBA de fecha y hora como la función DateAdd permite realizar cálculos complejos o que requieren mucho tiempo.más eficaz y rápida.

Descargar el cuaderno de prácticas

Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.

VBA Función DateAdd.xlsm

Introducción a la función DateAdd de Excel VBA

Resultado:

una fecha a la que se suma o resta un intervalo de tiempo específico

Sintaxis:

FechaAñadir (intervalo, número, fecha)

Argumentos:

Argumento Obligatorio/Opcional Descripción
intervalo Requerido A cadena expresión.

El intervalo de tiempo en diferentes ajustes que queremos añadir número Requerido A numérico expresión .

En número de intervalos a sumar o restar

Puede ser positivo - para futuro fechas

Puede ser negativo - para pasado fechas fecha Requerido A fecha expresión

En fecha a la que el intervalos son añadido

Ajustes:

En Función DateAdd tiene estos ajustes de intervalo:

Configuración Descripción
aaaa Año
q Cuarto
m Mes
y Año del día
d Día
w Entre semana
ww Semana
h Hora
n Minuto
s Segundo

Ejemplos de la función DateAdd de Excel VBA

Expresiones de fórmula de la función DateAdd de Excel

Hay diferentes maneras de poner el fecha argumento en el Función DateAdd. Todas dan el mismo resultado.

Ponga lo siguiente código en el Editor de Visual Basic:

(Cómo ejecutar código en el Editor de Visual Basic)

 Sub add_year() Range("D3") = DateAdd("yyyy", 2, #1/1/2022#) Range("D4") = DateAdd("yyyy", 2, DateSerial(2022, 1, 1)) Range("D5") = DateAdd("yyyy", 2, DateValue("Jan 1, 2022")) Range("D6") = DateAdd("yyyy", 2, Range("B6")) End Sub 

Explicación :

DateAdd("aaaa",2, uno de los siguientes métodos)

Para poner el argumento de la fecha podemos utilizar diferentes métodos:

  • #1/1/2011#
  • FechaSerial( año , mes, día)
  • DateValue( fecha )
  • Gama ("celda") - Fecha almacenada en una celda
  • Almacenamiento de la fecha en una variable

En células D3, D4, D5, D6, D7 ponemos los métodos anteriores como fecha argumento del FechaAñadir secuencialmente y obtuvo el mismo resultado.

Añadimos 2 más años a 1/1/2022 que dio lugar a 1/1/2024.

Toma,

aaaa representa el año como intervalo

2 representa el número de intervalos como número .

Ayuda: Cómo ejecutar código en el editor de Visual Basic

Sigue los pasos:

  • Desde el Cinta Excel Ir a Ficha Desarrollador y seleccione Visual Basic Tab.

  • En la nueva ventana, haga clic en el botón Inserte y seleccione Módulo.

  • Escriba su código en el editor y pulse F5 a correr.

Añadir Diferentes Configuraciones de Intervalo Usando la Función DateAdd en Excel

1. Añadir año

Código:

 Sub DateAdd_Years() Rango("F5") = DateAdd("aaaa", 2, Rango("D5")) End Sub 

Resultado: 2 años añadido a 1/1/2022 (mm/dd/aaaa) y dio como resultado 1/1/2024 (mm//dd/aaaa).

Más información: Cómo utilizar la función Año en Excel VBA

2. Añadir trimestre

Código:

 Sub DateAdd_Quarters() Rango ("F5") = DateAdd("q", 2, Rango("D5")) End Sub 

Resultado: 2 trimestres = 6 meses añadido a 1/1/2022 (mm/dd/aaaa) y dio como resultado 7/1/2022 (mm//dd/aaaa).

3. Añadir mes

Código:

 Sub DateAdd_Months() Rango("F5") = DateAdd("m", 2, Rango("D5")) End Sub 

Resultado: 2 meses añadido a 1/1/2022 (mm/dd/aaaa) y dio como resultado 3/1/2022 (mm//dd/aaaa).

Más información: Cómo utilizar la función MES de Excel VBA

4. Añadir día del año

Código:

 Sub DateAdd_DayOfYear() Range("F5") = DateAdd("y", 2, Range("D5")) End Sub 

Resultado : 2 Día del Año añadido a 1/1/2022 (mm/dd/aaaa) y dio como resultado 1/3/2022 (mm//dd/aaaa).

Más información: Cómo utilizar la función Día en Excel VBA

5. Añadir día

Código:

 Sub DateAdd_Day() Rango("F5") = DateAdd("d", 2, Rango("D5")) End Sub 

Resultado : 2 Días añadidos a 1/1/2022 (mm/dd/aaaa) y dio como resultado 1/3/2022 (mm//dd/aaaa).

Lecturas similares

  • Excel VBA para encontrar el número de semana (6 ejemplos rápidos)
  • Cómo utilizar la función DatePart de VBA en Excel (7 ejemplos)
  • Utilice la función DateSerial de VBA en Excel (5 sencillas aplicaciones)
  • Cómo Convertir Fecha de Cadena Usando VBA (7 Maneras)

6. Añadir día de la semana

Código:

 Sub DateAdd_WeekDay() Rango("F5") = DateAdd("w", 10, Rango("D5")) End Sub 

Resultado: 10 WeekDays añadidos a 1/1/2022 (mm/dd/aaaa) y dio como resultado 1/11/2022 (mm//dd/aaaa).

7. Añadir semana

Código:

 Sub DateAdd_Weeks() Rango("F5") = DateAdd("ww", 2, Rango("D5")) End Sub 

Resultado: 2 Semanas= 14 Días añadidos a 1/1/2022 (mm/dd/aaaa) y dio como resultado 1/15/2022 (mm//dd/aaaa).

Más información: Cómo obtener el día de la semana utilizando VBA

8. Añadir hora

Código:

 Sub DateAdd_Hours() Rango("F5") = DateAdd("h", 14, Rango("D5")) End Sub 

Resultado: 14 horas añadidas a 1/1/2022 12:00 HORAS (mm/dd/aaaa: hh/mm) y dio como resultado 1/1/2022 14:00 (mm//dd/aaaa : hh/mm).

9. Añadir minuto

Código:

 Sub DateAdd_Minutes() Rango("F5") = DateAdd("n", 90, Rango("D5")) End Sub 

Resultado : 90 Minutos= 1,30 Horas añadidas a 1/1/2022 12:00 HORAS (mm/dd/aaaa) y dio como resultado 1/1/2022 1:30 AM (mm//dd/aaaa).

10. Añadir segundo

Código:

 Sub DateAdd_Seconds() Rango("F5") = DateAdd("s", 120, Rango("D5")) End Sub 

Resultado: 120 segundos = 2 minutos añadidos a 1/1/2022 12:00 HORAS (mm/dd/aaaa : hh/mm) y dio como resultado 1/1/2022 12:02 AM (mm//dd/aaaa : hh/mm).

Uso de la función DateAdd en Excel para restar distintas configuraciones de intervalo

Del mismo modo, podemos restar años, meses, días, horas, minutos, etc. a partir de una fecha utilizando un signo menos en frente de la argumento numérico Por ejemplo:

Código:

 Sub DateAdd_Subtract_Years() Rango("F5") = DateAdd("y", -2, Rango("D5")) End Sub 

Resultado: 2 años restado de 1/1/2022 (mm/dd/aaaa) y dio como resultado 1/1/2020 (mm//dd/aaaa).

Cosas para recordar

  • Cuando utilizamos 'w' añadir entre semana suma y sigue todos los días de la semana incluyendo sábado y domingo, no sólo los días laborables (alguien podría esperar).
  • La función DateAdd no acaba mostrando un fecha no válida Por ejemplo, si añadimos 1 mes al 31 de enero de 2022, el resultado será el 28 de febrero de 2022, no el 31 de febrero de 2022 (no existe).
  • Si restamos más de 122 años a partir de ahora un error se produciría porque la fecha de Excel comienza de 1 de enero de 1990.
  • La fecha de retorno de la función DateAdd depende del Panel de control Ajustes de fecha.
  • Deberíamos el argumento de fecha de la función DateAdd de acuerdo con el Calendario Propiedad Si el Calendario es Gregoriano la entrada da te argumento también debe estar en Gregoriano Del mismo modo, si el calendario está en Hijri, el argumento de la fecha debe tener el mismo formato.

Conclusión

Ahora, sabemos cómo utilizar la función VBA DateAdd en Excel. Esperemos que le anime a utilizar esta funcionalidad con más confianza. Cualquier pregunta o sugerencia no se olvide de ponerlos en el cuadro de comentarios a continuación

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.