Función DateDiff en Excel VBA

La función VBA Datediff proporciona la diferencia entre dos intervalos especificados. Aquí, el intervalo puede especificarse como horas / meses / días … etc. según lo especificado por el usuario. Es una función incorporada en Excel y clasificada como la función " Fecha / Hora ". Se puede utilizar como una función " VBA " en Excel.

Sintaxis :

Parámetro o argumentos utilizados en la función DateDiff.

1. Intervalo:

  • Es obligatorio.
  • Tipo: - Expresión de tipo de cadena.
  • Calcula la diferencia entre las dos fechas.
Ajuste (intervalo) Descripción / Explicación
"S" Segundos
"norte" Minutos
"H" Horas
"re" Dias
"W" Día laborable
"metro" Meses
"Ww" Semana
"Y" Dia del año
"Q" Trimestre
"Aaaa" Año

2. Fecha1:

  • Es obligatorio.
  • Tipo: - Fecha.
  • Representa la fecha / hora de inicio para el cálculo de fechado.

3. Fecha2:

  • Es obligatorio.
  • Tipo: - Fecha.
  • Representa la fecha / hora de finalización para el cálculo de fechado.

4. Primer día de la semana:

  • Es opcional.
  • Tipo: - Numérico o Texto.
  • Especifica el día que se usa como el primer día de la semana.
  • Si se omite este argumento o parámetro, se asume el domingo (VbSunday) como el primer día de la semana.

5. Primera semana del año.

  • Es opcional.
  • Tipo: - Numérico o Texto.
  • Especifica el día que se usa como la primera semana del año.
  • Si se omite este argumento o parámetro, se supone el 1 de enero (vbFirstJan1) como la primera semana del año.

¿Cómo habilitar la pestaña del desarrollador en Excel?

La pestaña de desarrollador es obligatoria en la cinta de Excel para iniciar y escribir macro VBA. A continuación se detallan los diferentes pasos para habilitar la pestaña de desarrolladores en Excel VBA:

Paso 1: ve a la pestaña del menú Archivo .

Paso 2: en el menú Archivo, haga clic en Opciones situadas en la última de las opciones disponibles de la lista en el menú.

Paso 3: haga clic en Personalizar cinta para acceder a las opciones de personalización de la cinta.

Paso 4: Aquí, en las opciones de personalización, puede ver la opción Desarrollador . Márquelo, para que se active en la cinta principal de Excel y se pueda acceder fácilmente. Haga clic en Aceptar después de marcar la opción Desarrollador.

Tan pronto como presione OK, puede ver la pestaña Desarrollador activa en el menú de cinta de Excel con un montón de diferentes opciones disponibles en. Vea la captura de pantalla a continuación.

¿Cómo usar la función DateDiff en Excel VBA?

A continuación se detallan los diferentes pasos para usar la función DateDiff en Excel VBA:

Puede descargar esta plantilla VBA DateDiff Excel aquí - Plantilla VBA DateDiff Excel

Ejemplo 1

En este ejemplo, siga los pasos a continuación para usar la función DateDiff en VBA:

Paso 1: Primero crea un nombre de macro.

Código:

 Sub bb () End Sub 

Paso 2: dos variables se definen como fecha y se les asigna la fecha.

Código:

 Sub bb () Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 AM # End Sub 

Paso 3: escriba la sintaxis de la función Datediff tomando el argumento requerido y asígnelo a través del cuadro de mensaje VBA.

Código:

 Sub bb () Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 AM # MsgBox DateDiff ("h", dt1, dt2) Fin Sub 

Paso 4: Ejecute el código presionando la tecla F5 o haciendo clic en el botón Reproducir. Para que el resultado se muestre en el cuadro de mensaje.

Ejemplo # 2

En el siguiente ejemplo, la función fechada calcula el número de años entre las dos fechas "06/09/2016" y "16/12/2020". Aquí, los parámetros opcionales no se tienen en cuenta.

Código:

 Sub AA () 'Año diferencia MsgBox DateDiff ("aaaa", "06/09/2016", "16/12/2020") Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 3

En el siguiente ejemplo, la función fechada calcula el número de meses entre las dos fechas "06/09/2016" y "16/12/2020". Aquí, los parámetros opcionales no se tienen en cuenta.

Código:

 Sub AA1 () 'diferencia mensual MsgBox DateDiff ("m", "06/09/2016", "16/12/2020") Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 4

En el siguiente ejemplo, la función dateiff calcula el número de semanas entre las dos fechas "06/09/2016" y "16/12/2020". Aquí, los parámetros opcionales no se tienen en cuenta.

Código:

 Sub AA2 () 'semanas de diferencia MsgBox DateDiff ("ww", "06/09/2016", "16/12/2020") Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 5

En el siguiente ejemplo, la función " fechada " calcula el número de trimestres entre las dos fechas "06/09/2016" y "16/12/2020". Aquí, los parámetros opcionales no se tienen en cuenta.

Código:

 Sub AA3 () 'diferencia cuarto MsgBox DateDiff ("q", "06/09/2016", "16/12/2020") Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 6

En el siguiente ejemplo, la función " fechada " calcula el número de días entre las dos fechas "06/09/2016" y "16/12/2020". Aquí, los parámetros opcionales no se tienen en cuenta.

Código:

 Sub AA4 () 'días de diferencia MsgBox DateDiff ("d", "06/09/2016", "16/12/2020") Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 7

En el ejemplo a continuación, la función " fechada " calcula el número de horas entre las dos fechas y horas "9:00 el 01/01/2010" y "11:00 el 19/04/2019".

Código:

 Sub bb1 () 'Calcular el número de horas entre el 1/1/2010 9:00 y el 19/4/2019 11:00 Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 AM # MsgBox DateDiff ("h", dt1, dt2) Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 8

En el ejemplo a continuación, la función " fechada " calcula el número de segundos entre las dos fechas y horas "9:00 el 01/01/2010" y "11:00 el 19/04/2019".

Código:

 Sub bb2 () 'Calcular el número de segundos entre el 1/1/2010 9:00 y el 19/4/2019 11:00 Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 AM # MsgBox DateDiff ("s", dt1, dt2) Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 9

En el ejemplo a continuación, la función " fechada " calcula el número de minutos entre las dos fechas y hora "9:00 el 01/01/2010" y "11:00 el 19/04/2019".

Código:

 Sub bb3 () 'Calcular el número de minutos entre el 1/1/2010 9:00 y el 19/4/2019 11:00 Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 4/19/2019 11:00:00 AM # MsgBox DateDiff ("n", dt1, dt2) Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 10

Si el argumento se especifica como "w" (semanas), la función "Datediff" devuelve el número de toda la semana entre las dos fechas. Se ignoran semanas parciales. En el ejemplo, la función " DateDiff " calcula el número de semanas enteras entre las fechas 01/01/2010 y 19/4/2019.

Código:

 Sub bb4 () 'Calcular el número de semanas entre el 1/1/2010 y el 19/4/2010 Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/2010 # dt2 = # 4/19/2010 # MsgBox DateDiff ("w", dt1, dt2) Fin Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 11

Si el argumento se especifica como "ww" (semanas calendario), la función "Datediff" proporciona el número de semanas entre el inicio de la semana que contiene Date1 y el comienzo de la semana que contiene Date2.

Código:

 Sub bb5 () 'Calcular el número de semanas calendario entre el 1/1/2010 y el 19/4/2019' Primer día de la semana = Lunes Dim dt1 Como Fecha Dim dt2 Como Fecha dt1 = # 1/1/2010 # dt2 = # 4/19/2019 # MsgBox DateDiff ("ww", dt1, dt2, vbMonday) End Sub 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Ejemplo # 12

En el ejemplo a continuación, la función "fechada" se usa para las fechas "1/1/1990" y "1/1/1998"

Código:

 Sub cc () Dim dt1 As Date Dim dt2 As Date dt1 = # 1/1/1990 9:00:00 AM # dt2 = # 1/11/1998 11:00:00 AM # MsgBox ("línea 1:" & DateDiff ("h", dt1, dt2)) MsgBox ("línea 2:" & DateDiff ("s", dt1, dt2)) MsgBox ("línea 3:" & DateDiff ("n", dt1, dt2)) MsgBox ("línea 4:" & DateDiff ("d", dt1, dt2)) MsgBox ("línea 5:" & DateDiff ("m", dt1, dt2)) MsgBox ("línea 6:" & DateDiff ("q", dt1, dt2)) MsgBox ("línea 7:" & DateDiff ("w", dt1, dt2)) MsgBox ("línea 8:" & DateDiff ("ww", dt1, dt2)) MsgBox ("línea 9: "& DateDiff (" y ", dt1, dt2)) MsgBox (" línea 10: "& DateDiff (" aaaa ", dt1, dt2)) Sub final 

Para ejecutar el programa, presione la pestaña " F8 " o " Ejecutar ". El resultado se mostrará en el cuadro de mensaje.

Luego, haga clic en " Aceptar " para obtener el siguiente resultado.

Conclusión

La función " DateDiff " ayuda a determinar cuántos intervalos de tiempo especificados existen entre dos fechas y horas especificadas.

Artículos recomendados

Esta es una guía de VBA DateDiff. Aquí discutimos cómo usar la función DateDiff en Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA Declarar matriz (ejemplos)
  2. Guía completa de VBA en caso de error
  3. Método de hoja desprotegida en VBA
  4. Columnas VBA | Plantilla de Excel
  5. VBA Environ

Categoría: