VBA DateSerial

Función Excel VBA DateSerial

La función DateSerial en VBA devuelve la fecha a partir de los valores proporcionados por los usuarios. Necesitamos proporcionar cuál es el año, cuál es el día y cuál es el mes. El resultado se basará en el formato de fecha de su sistema.

A continuación se muestra la sintaxis de la función DATESERIAL .

# 1 - Año: necesitamos ingresar el número entero como ¿cuál es el año? Al proporcionar un número entero, debemos tener en cuenta las siguientes cosas.

  • Podemos suministrar números del 0 al 9999.
  • Los números de uno y dos dígitos del 0 al 99 se tratarán desde 1930 hasta 2029.
  • El número entero negativo se restará del año 2000. Por ejemplo, si proporciona -1, el resultado será 1999 debido a que 2000 - 1 = 1999.

# 2 - Mes: necesitamos ingresar el número entero ya que ¿cuál es el mes? Al ingresar este número, debemos tener en cuenta las siguientes cosas.

  • Solo podemos suministrar números del 1 al 12.
  • Si el valor entero proporcionado es 0, entonces representará el mes "diciembre" del año anterior.
  • Si el valor entero proporcionado es -1, esto representará el mes "noviembre" del año anterior. Así, cuando el valor negativo aumenta, seguirá representando el mes del año atrasado.
  • Si el número proporcionado es más de 12, es decir, si el número es 13, esto representará el mes "enero" del año siguiente, si el número es 14, se tratará como el mes "febrero" del año siguiente.

# 3 - Día: necesitamos ingresar el número entero como ¿cuál es el día? Al ingresar este número, debemos tener en cuenta las siguientes cosas.

  • Podemos ingresar números enteros del 1 al 31 para los días del mes actual.
  • Si el número es 0, representará el último día del mes anterior.
  • Si el número es -1, representará el penúltimo día del mes anterior.
  • Si proporciona el último día de este mes +1, esto representará el primer día del mes siguiente. Por ejemplo, si el último día de agosto es 31 y si proporciona el día como 31 + 1, entonces representará el primer día de septiembre.

¿Cómo utilizar la función DATESERIAL en VBA?

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

Ejemplo 1

Para utilizar la función FECHASERIAL, comience a escribir el código macro.

Paso 1: Iniciar el procedimiento secundario

Primero, cree un subprocedimiento de VBA como se muestra a continuación.

Paso 2: declarar variable

Ahora declare una variable como FECHA.

Paso 3: Asigne la función DateSerial a esa variable.

Ahora, para esta variable, asigne la función DATESERIAL.

Paso 4: Ahora ingrese los valores de año, mes y día en la función DateSerial

Para suministro AÑO 2019, suministro MES 08 y suministro DÍA 05.

Paso 5: Mostrar el resultado en el cuadro de mensaje

Ahora muestre el resultado de la variable "Mi fecha" en el cuadro de mensaje.

Código:

 Opción Explicit Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Mydate End Sub 

Paso 6: ejecuta el código

Ahora ejecute este código para ver la fecha a continuación.

El resultado dice "5/8/2019". En mi sistema, el formato de fecha tiene el formato “MM-DD-AAAA”, por eso el resultado también está en el mismo formato.

También podemos cambiar el formato de la fecha usando la función FORMAT en VBA. Aplique la función FORMAT como la siguiente.

Código:

 Opción Explícita Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) Formato MsgBox (Mydate, "DD-MMM-YYYY") End Sub 

Esto aplicará el formato en “DD-MMM-AAAA” y el resultado es el siguiente.

Ejemplo # 2

También podemos declarar variables y proporcionar los valores a esas variables. Para ver un ejemplo, mire el siguiente código.

Código:

 Sub DateSerial_Example2 () Dim Mydate como fecha Dim MyYear como entero Dim MyMonth como entero Dim MyDay como entero MyYear = 2019 MyMonth = 8 MyDay = 5 Mydate = DateSerial (MyYear, MyMonth, MyDay) MsgBox Format (Mydate, "DD-MMM-YYYY ") Fin Sub 

En lugar de proporcionar año, mes y día directamente a la función DATESERIAL, hemos declarado variables y les hemos asignado valores. Luego, más tarde, hemos proporcionado variables a la función DATESERIAL.

Así es como podemos hacer uso de variables en VBA para almacenar valores.

Ejemplo # 3

Ahora experimentaremos con el año. Asignaré el valor del año como 1 y veré el resultado.

Los números de uno y dos dígitos en YEAR representan un año desde 1930 hasta 2029. Entonces, 01 significa 2001, 02 significa 2002 y así sucesivamente.

Ahora cambiemos el número del mes a 0 y veamos el resultado.

Mire el código aquí, el año es 2019 y el mes es 0. Pero mire el resultado que dice 05-Dec-2019, mientras que un año suministrado es 2019, dice 2018, es decir, el año anterior.

This is because since we have supplied the month as 0 DATESERIAL function takes the month to last month of the previous year and change the year also accordingly.

Like this try different numbers to see the impact of the function.

Things to Remember

  • You need to know what number represents which year, month, and daycare. Read Syntax explanation carefully to understand.
  • The result will be based on the date format of your system, if you want modified result then you need to apply FORMAT function mention the date format as per your convenience.