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 números enteros, 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, entonces el resultado será 1999 porque 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, esto 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 usar la función DATESERIAL en VBA?
Ejemplo 1
Para usar la función FECHASERIAL, comience a escribir el código de 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 el suministro de AÑO 2019, para el suministro de MES 08 y para el suministro de 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 debajo la fecha.

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 tiene 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) MsgBox Format (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. Por 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
Instead of supplying year, month, and day directly to the DATESERIAL function, we have declared variables and assigned values to them. Then later, we have supplied variables to the DATESERIAL function.
This is how we can make use of variables in VBA to store values.
Example #3
Now we will experiment with the year. I will assign the year value as 1 and see the result.

Single & Double-digit numbers in YEAR represents a year from 1930 to 2029. So 01 means 2001, 02 means 2002, and so on.
Now let’s change the month number to 0 and see the result.

Look at the code here, Year is 2019, and the month is 0. But look at the result it says 05-Dec-2019, whereas a supplied year is 2019 it says 2018 i.e., the previous year.
Esto se debe a que, dado que hemos proporcionado el mes como 0, la función DATESERIAL lleva el mes al último mes del año anterior y cambia el año también en consecuencia.
De esta manera, pruebe con diferentes números para ver el impacto de la función.
Cosas para recordar
- Necesita saber qué número representa qué año, mes y guardería. Lea la explicación de la sintaxis con atención para comprenderla.
- El resultado se basará en el formato de fecha de su sistema. Si desea un resultado modificado, debe aplicar la función FORMATO y mencionar el formato de fecha según su conveniencia.