Excel VBA DateAdd

VBA DateAdd es una función que realiza la suma o resta de intervalos de tiempo / fecha. Esto devolverá la fecha al sumar o restar un intervalo de tiempo especificado. Es bastante difícil lidiar con la fecha y la hora cuando haces algunos cálculos al respecto. Pero en nuestro trabajo diario, es un tipo esencial de datos que podemos usar. Comparación, suma, resta entre diferentes fechas son algunas operaciones familiares que hacemos.

Fórmula para la función DateAdd en Excel VBA

La fórmula para la función VBA DateAdd es muy simple en formato.

Veamos cuáles son los parámetros utilizados en la función Excel VBA DateAdd.

  • Intervalo: puede ser un intervalo de hora / fecha que desea agregar o restar. Esto representa qué tipo de valor desea agregar o restar. Esto puede ser un componente de fecha u hora, como días, mes, etc. El alcance de los intervalos se detalla a continuación.

  • Número: es el número de intervalos que desea agregar. Use un número positivo para agregar el intervalo con la fecha dada y el valor negativo para restar el intervalo de la fecha.
  • Fecha : la fecha a la que desea agregar / restar el intervalo. Las operaciones se realizarán en esta fecha y fecha de retorno como salida.

Ejemplos de la función Excel VBA DateAdd

A continuación se muestran los diferentes ejemplos de la función DateAdd en Excel VBA:

Puede descargar esta plantilla VBA DateAdd Excel aquí - VBA DateAdd Excel Template

Ejemplo # 1 - Agregar fecha

Veamos cómo agregar un número particular con la fecha dada usando la función VBA DateAdd.

  • Necesitamos encontrar la fecha después de agregar '10' días con la fecha '25 / 10/2015 '
  • Inicie el subprocedimiento con un nombre. Aquí creamos un subprocedimiento llamado 'adddate'.

Código:

 Sub adddate () End Sub 

  • Cree una variable como tipo de datos de fecha, el nombre de la variable es fecha actual.

Código:

 Sub adddate () Dim actual date As Date End Sub 

  • Vamos a almacenar el resultado en esta variable currentdate.
  • Queremos agregar '10' días con '25 / 10/2015 '. Entonces, el número de días que desea agregar es 10. Y el intervalo es 'd' y el número es 10.
  • Así que apliquemos la función VBA DateAdd como se muestra a continuación.

Código:

 Sub adddate () Dim currentdate As Date currentdate = DateAdd ("d", 10, "25/10/2015") End Sub 

  • Después de aplicar la fórmula a la variable, usemos un cuadro de mensaje para imprimir el resultado.

Código:

 Sub adddate () Dim currentdate As Date currentdate = DateAdd ("d", 10, "25/10/2015") MsgBox Format (currentdate, "dd-mm-aaaa") End Sub 

  • Ejecute el código presionando F5. El resultado se mostrará como

Puede ver el resultado como se muestra arriba.

Ejemplo # 2 - Agregar meses

  • Para agregar meses con la fecha dada, el intervalo debe cambiar como "m".
  • Agregue '2' con la fecha “15/2/2017”. El código se puede escribir de la siguiente manera.

Código:

 Sub addmonth () Dim currentdate As Date currentdate = DateAdd ("m", 2, "15/2/2017") MsgBox Format (currentdate, "dd-mm-aaaa") End Sub 

  • La fecha de salida se cambiará como se muestra a continuación.

Ejemplo # 3 - Agregar año

Para agregar años con la fecha dada, se puede usar el siguiente código.

  • El intervalo debe ser "aaaa"
  • Agregue 4 años con '20/2/2018'

Código:

 Sub addyear () Dim currentdate As Date currentdate = DateAdd ("aaaa", 4, "20/2/2018") Formato MsgBox (fecha actual, "dd-mm-aaaa") End Sub 

  • El resultado será el siguiente. La variable currentdate devolverá '20 / 2/2022 '

Ejemplo # 4 - Agregar trimestre

  • Al agregar el trimestre, se agregarán tres meses a la fecha desde el trimestre si 12 meses son 3.
  • El intervalo debe mencionarse como "Q", el número dado en la fórmula especifica cuántos trimestres deben agregarse. Por ejemplo, el número de trimestres DateAdd (“Q”, 2, ”22/5/2019”) es 2, por lo que se agregarán 6 meses.
  • Para agregar 2 trimestres con '22 / 5/2018 'se puede usar el siguiente código.

Código:

 Sub addquarter () Dim currentdate As Date currentdate = DateAdd ("Q", 2, "22/5/2019") MsgBox Format (currentdate, "dd-mm-aaaa") End Sub 

  • El resultado será el siguiente.

Ejemplo # 5 - Agregar segundos

  • Puede agregar tiempo junto con la fecha que se muestra. Para obtener esto, mencione el intervalo como "s" que indica segundos.
  • Para mostrar cinco segundos con la fecha '28 / 3/2019 'puede usar la siguiente fórmula.

Código:

 Sub addseconds () Dim currentdate As Date currentdate = DateAdd ("s", 5, "28/3/2019") MsgBox Format (currentdate, "dd-mm-aaaa hh: mm: ss") End Sub 

  • Mientras se muestra la salida con la fecha, se mostrarán los segundos.

Ejemplo # 6 - Agregar semanas

  • Para agregar varias semanas con la fecha dada, use el intervalo como "WW"
  • Código para encontrar la fecha después del número de semanas dado desde'27 / 03/2016 '

Código:

 Sub addweek () Dim currentdate As Date currentdate = DateAdd ("WW", 2, "27/3/2019") MsgBox Format (currentdate, "dd-mm-aaaa") End Sub 

  • La salida será la fecha después de 2 semanas.

Ejemplo # 7 - Agregar horas

  • Para obtener un tiempo particular con una fecha, se usa esto.
  • En intervalos mencione la "h" y también cambie el formato de la salida.
  • El código para obtener las horas impresas con una fecha es.

Código:

 Sub addhour () Dim currentdate As Date currentdate = DateAdd ("h", 12, "27/3/2019") MsgBox Format (currentdate, "dd-mm-aaaa hh: mm: ss") End Sub 

  • El resultado se mostrará con el tiempo en hh: mm: ss.

Ejemplo # 8 - ¿Cómo restar semanas usando la función VBA DateAdd?

Similar a la suma, la resta también se puede realizar usando la función VBA DateAdd. Los números especificados como enteros positivos junto con la fórmula. Para realizar la resta, use estos números como enteros negativos. Por ejemplo, cambie la fórmula de la siguiente manera.

 DateAdd (intervalo, - número, fecha) 

Al utilizar el método anterior, intentará encontrar el día restando tres semanas del '28 / 3/2019 '

  • Cree un subprocedimiento como subdata.

Código:

 Sub subdate () End Sub 

  • Defina una variable para almacenar el resultado. Currentdate es una variable como tipo de fecha para asignar el resultado final.

Código:

 Sub subdate () Dim actual date As Date End Sub 

  • Para restar tres semanas del '28 / 3/2019 'aplicará la fórmula. DateAdd ("ww", -3, "28/3/2019")

Código:

 Sub subdate () Dim actual date As Date currentdate = DateAdd ("ww", -3, "28/3/2019") End Sub 

'-3' indica que la resta "ww" es el intervalo ya que queremos operar en semanas.

  • La fórmula se aplica y el resultado se almacena en la fecha actual.

Código:

 Sub subdate () Dim actual date As Date currentdate = DateAdd ("ww", -3, "28/3/2019") MsgBox Format (currentdate, "dd-mm-aaaa") End Sub 

  • El resultado después de restar tres semanas de la fecha dada se muestra a continuación.

Cosas para recordar

  • El intervalo y la fecha mencionados en la fórmula se darán entre comillas dobles.
  • Si usa el intervalo de días de la semana "w", funcionará de manera similar al día de intervalo "d" ya que el día de la semana calcula 1 = domingo, 2 = lunes, etc.
  • La salida se mostrará de acuerdo con la configuración del formato de fecha en su sistema. Use el formato junto con un cuadro de mensaje para imprimir el resultado en el formato que desee.
  • Dentro de la función VBA DateAdd, use el número como negativo para realizar la resta entre fechas.

Artículos recomendados

Esta es una guía para la función Excel VBA DateAdd. Aquí discutimos los ejemplos de la función VBA DateAdd para sumar y restar días, meses y años de la fecha dada junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. ¿Cómo utilizar la función de fecha en VBA?
  2. Formato de fecha en Excel VBA
  3. ¿Qué es el tiempo VBA en Excel?
  4. Fórmula de fecha en Excel con ejemplos

Categoría: