Excel VBA DatePart

Supongamos que tenemos fechas en nuestros datos y no sabemos qué semana o qué parte del mes es. Hay varias formas de descubrir esto. En Excel hay algunas fórmulas complejas que debemos realizar para encontrar eso. Por ejemplo, si hay una fecha, 02-feb-2019, el cálculo para averiguar el trimestre para esta fecha en Excel es complejo. Sin embargo, VBA nos proporciona una función muy útil llamada DatePart que realiza dichos cálculos por nosotros.

Ya he explicado anteriormente por qué usamos la función DatePart en VBA. Esta función se usa para averiguar la parte de la fecha, ya sea un día, mes, trimestre o incluso horas o segundos. Esta función devuelve el entero como salida. Para comprender más sobre esta función, primero veamos en detalle la sintaxis de esta función.

Sintaxis de DatePart en Excel VBA

Veamos la sintaxis a continuación para DatePart en Excel VBA.

Como podemos ver, hay un total de cuatro argumentos proporcionados para esta función. Los primeros dos argumentos son obligatorios, mientras que los otros dos argumentos son opcionales. Sin embargo, si no proporcionamos los dos últimos argumentos, VBA tiene sus propios valores predeterminados.

  • Intervalo: este argumento se proporciona como una cadena para esta función. Este argumento puede ser un mes, semana, año, día o incluso hora, minutos o segundos. Por ejemplo, durante un trimestre la sintaxis será "q", o para el año la sintaxis será "aaaa" y así sucesivamente.
  • Fecha: Esta es la fecha de entrada, que proporcionamos a esta función para cuya parte queremos averiguar.
  • FirstDayofWeek: este es un argumento opcional que damos a esta función. Pero si no proporcionamos el primer día de la semana a la función, VBA trata automáticamente el DOMINGO como el primer día de la semana. Hay diferentes sintaxis para proporcionar este argumento, que es la siguiente:

vbUseSystem (esta sintaxis utiliza la configuración de la API de NLS), vbSunday (este es el argumento predeterminado), vbMonday, vbTuesday, vbWednesday, vbThursday, vbFriday, vbSaturday (el resto de estos argumentos son opcionales)

  • FirstWeekofYear: este también es un argumento opcional para esta función. Pero, de nuevo, si no proporcionamos este argumento, VBA automáticamente considera la primera semana, la semana que sea la primera desde el 1 de enero. También para este argumento, hay diferentes sintaxis, son las siguientes:

vbUseSystem, vbFirstJan1 (este es el valor predeterminado), vbFirstFourDays (este argumento comienza con la primera semana que tiene al menos los primeros cuatro días en el nuevo año), vbFirstFullWeek (este argumento comienza con la primera semana completa del año).

Ahora que hemos aprendido sobre las funciones y sus argumentos, vamos a probar esta función en ejemplos.

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

A continuación se muestran los diferentes ejemplos para usar la función DatePart en Excel usando el código VBA.

Puede descargar esta plantilla Excel de VBA DatePart aquí - Plantilla Excel de VBA DatePart

Excel VBA DatePart - Ejemplo # 1

Tomemos una entrada del usuario como fecha y parte que el usuario quiere averiguar, luego usaremos la función DatePart y mostraremos el resultado.

Siga los pasos a continuación para usar la función DatePart en Excel VBA:

Paso 1: desde la pestaña del desarrollador en la sección de código, haga clic en Visual Basic, que nos llevará al Editor VB.

Paso 2: Una vez en el Editor VB, inserte un nuevo módulo en el proyecto VBA como se muestra a continuación.

Paso 3: Ahora haga doble clic en el módulo y comience a declarar un nuevo subproceso como se muestra a continuación.

Código:

 Sub muestra () End Sub 

Paso 4: Defina tres variables, una como Cadena y fecha que contendrá la parte y la fecha de nuestra entrada y otra como un número entero que almacenará nuestra salida.

Código:

 Submuestra () Dim Dt como fecha, Prt como cadena, Res como entero Fin Sub 

Paso 5: en la variable de fecha, solicite la entrada del usuario para la fecha de entrada.

Código:

 Submuestra () Dim Dt como fecha, Prt como cadena, Res como entero Dt = InputBox ("Ingrese una fecha") End Sub 

Paso 6: en Prt, que es parte, tome la entrada del usuario para la parte de fecha que necesitamos averiguar.

Código:

 Submuestra () Dim Dt como fecha, Prt como cadena, Res como entero Dt = InputBox ("Ingrese una fecha") Prt = InputBox ("Ingrese la parte de fecha") End Sub 

Paso 7: Ahora en Res Variable, que es el resultado, descubramos el resultado utilizando la función DatePart de la siguiente manera.

Código:

 Submuestra () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Enter a Date") Prt = InputBox ("Enter Date Part") Res = DatePart (Prt, Dt) End Sub 

Paso 8: Muestra el valor almacenado en Res usando la función msgbox.

Código:

 Submuestra () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Enter a Date") Prt = InputBox ("Enter Date Part") Res = DatePart (Prt, Dt) MsgBox Res End Sub 

Paso 9: Ahora ejecutemos el código anterior presionando la tecla F5 o haciendo clic en el botón Reproducir y proporcione una fecha de la siguiente manera.

Paso 10: Ingrese el valor de la parte de fecha.

Paso 11: Presione OK para ver el resultado como se muestra a continuación.

Obtenemos 1 como resultado, ya que la fecha que proporcionamos como entrada cae en el primer trimestre del año.

Excel VBA DatePart - Ejemplo # 2

Esta vez, proporcionemos la fecha directamente a la función en el código. Siga los pasos a continuación para usar la función DatePart en Excel VBA:

Paso 1: en el mismo módulo, defina otro subproceso como se muestra a continuación.

Código:

 Sub Sample1 () End Sub 

Paso 2: Defina una variable como Entero y una variable como Fecha como se muestra a continuación.

Código:

 Sub Sample1 () Dim Dt As Date, Res As Integer End Sub 

Paso 3: proporcione una fecha para la variable.

Código:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # End Sub 

Paso 4: en la variable Res, calculemos la semana de la fecha utilizando la función DatePart.

Código:

 Submuestra1 () Dim Dt como fecha, Res como entero Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) End Sub 

Paso 5: Muestra el valor almacenado en la variable usando la función msgbox.

Código:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Paso 6: Ejecute el código anterior presionando la tecla F5 o haciendo clic en el botón Reproducir para obtener el siguiente resultado.

La fecha que proporcionamos como entrada cae en la quinta semana del año.

Excel VBA DatePart - Ejemplo # 3

Probemos un ejemplo de la vida real. En la hoja 1 en la celda A1, he usado la fórmula = Ahora () para obtener la fecha y hora actuales y descubriremos la parte de fecha para esta celda.

Siga los pasos a continuación para usar la función DatePart en Excel VBA:

Paso 1: en el mismo módulo, defina otro subproceso de la siguiente manera.

Código:

 Sub Sample2 () End Sub 

Paso 2: Defina dos variables, una como Fecha y otra como un entero.

Código:

 Sub Sample2 () Dim Dt As Date, Res As Integer End Sub 

Paso 3: en la tienda Dt variable, el valor de la celda A1 es el siguiente.

Código:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Value End Sub 

Paso 4: Ahora, en la variable res, calculemos la parte de la semana para la entrada utilizando la función DatePart.

Código:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Value Res = DatePart ("ww", Dt) End Sub 

Paso 5: Visualice el valor almacenado en la variable usando la función Msgbox.

Código:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Value Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Paso 6: Ejecute el código anterior presionando la tecla F5 o haciendo clic en el botón Reproducir para obtener el siguiente resultado.

La fecha actual es el 25 de julio, que es la semana 30 del año 2019.

Cosas para recordar

  • Es una función de fecha pero devuelve un valor entero.
  • Los primeros dos argumentos son obligatorios, mientras que los otros dos argumentos son opcionales.
  • VBA tiene sus propios argumentos predeterminados si no proporcionamos los dos últimos argumentos para la función DatePart.
  • Esta función es una función VBA y no una función de hoja de cálculo.

Artículos recomendados

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

  1. VBA DateAdd
  2. HOY Fórmula en Excel
  3. Función de fecha VBA
  4. AHORA Función Excel
  5. ¿Cómo usar el formato de fecha VBA en Excel?
  6. ¿Dónde escribir código en VBA?

Categoría: