Função Excel VBA DateSerial
A função DateSerial no VBA retorna a data dos valores fornecidos pelos usuários. Precisamos fornecer qual é o ano, qual é o dia e qual é o mês. O resultado será baseado no formato de data do seu sistema.
Abaixo está a sintaxe da função DATESERIAL .

# 1 - Ano: precisamos inserir o número inteiro, pois qual é o ano? Ao fornecer números inteiros, precisamos manter as coisas abaixo em mente.
- Podemos fornecer números de 0 a 9999.
- Números de um e dois dígitos de 0 a 99 serão tratados de 1930 a 2029.
- O número inteiro negativo será subtraído do ano 2000. Por exemplo, se você fornecer -1, o resultado será 1999 devido a 2000 - 1 = 1999.
# 2 - Mês: precisamos inserir o número inteiro, pois qual é o mês? Ao inserir esse número, precisamos ter em mente os itens abaixo.
- Podemos fornecer números de 1 a 12 apenas.
- Se o valor inteiro fornecido for 0, isso representará o mês “dezembro” do ano anterior.
- Se o valor inteiro fornecido for -1, isso representará o mês “novembro” do ano anterior. Assim, quando o valor negativo aumentar, ele continuará representando o mês do ano atrasado.
- Se o número fornecido for superior a 12, ou seja, se o número for 13, isso representará o mês “janeiro” do ano seguinte. Se o número for 14, ele será tratado como o mês “fevereiro” do ano seguinte.
# 3 - Dia: precisamos inserir o número inteiro, pois qual é o dia? Ao inserir esse número, precisamos ter em mente os itens abaixo.
- Podemos inserir números inteiros de 1 a 31 para os dias do mês atual.
- Se o número for 0, ele representará o último dia do mês anterior.
- Se o número for -1, ele representará o penúltimo dia do mês anterior.
- Se você fornecer o último dia deste mês +1, isso representará o primeiro dia do mês seguinte. Por exemplo, se o último dia de agosto for 31 e você fornecer o dia como 31 + 1, ele representará o primeiro dia de setembro.
Como usar a função DATESERIAL no VBA?
Exemplo 1
Para usar a função DATESERIAL, comece a escrever o código da macro.
Etapa 1: iniciar o subprocedimento
Primeiro, crie um subprocedimento VBA, conforme mostrado abaixo.

Etapa 2: Declarar Variável
Agora declare uma variável como DATE.

Etapa 3: atribua a função DateSerial a essa variável.
Agora, para esta variável, atribua a função DATESERIAL.

Etapa 4: agora insira os valores de ano, mês e dia na função DateSerial
Para fornecimento ANO 2019, para fornecimento MÊS 08 e para fornecimento DIA 05.

Etapa 5: mostrar o resultado na caixa de mensagem
Agora mostre o resultado da variável “Minha data” na caixa de mensagem.
Código:
Option Explicit Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Mydate End Sub

Etapa 6: execute o código
Agora execute este código para ver a data abaixo.

O resultado diz “8/5/2019”. No meu sistema, o formato de data é “MM-DD-AAAA”, por isso o resultado também está no mesmo formato.
Também podemos alterar o formato da data usando a função FORMAT no VBA. Aplique a função FORMAT como a seguir.
Código:
Option Explicit Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Format (Mydate, "DD-MMM-YYYY") End Sub
Isso aplicará o formato em “DD-MMM-AAAA” e o resultado será o seguinte.

Exemplo # 2
Também podemos declarar variáveis e fornecer os valores a essas variáveis. Por exemplo, observe o código abaixo.
Código:
Sub DateSerial_Example2 () Dim Mydate As Date Dim MyYear As Integer Dim MyMonth As Integer Dim MyDay As Integer MyYear = 2019 MyMonth = 8 MyDay = 5 Mydate = DateSerial (MyYear, MyMonth, MyDay) Formato MsgBox (Mydate, "DD-MMYYYY ") End Sub
Em vez de fornecer ano, mês e dia diretamente para a função DATESERIAL, declaramos variáveis e atribuímos valores a elas. Posteriormente, fornecemos variáveis para a função DATESERIAL.
É assim que podemos fazer uso de variáveis no VBA para armazenar valores.
Exemplo # 3
Agora vamos experimentar o ano. Atribuirei o valor do ano como 1 e verei o resultado.

Números de dígito único e duplo em ANO representam um ano de 1930 a 2029. Portanto, 01 significa 2001, 02 significa 2002 e assim por diante.
Agora vamos mudar o número do mês para 0 e ver o resultado.

Veja o código aqui, o ano é 2019 e o mês é 0. Mas olhe para o resultado diz 05-dez-2019, enquanto um ano fornecido é 2019 diz 2018 ou seja, o ano anterior.
Isso ocorre porque, como fornecemos o mês como 0, a função DATESERIAL leva o mês para o último mês do ano anterior e altera o ano também de acordo.
Assim, tente números diferentes para ver o impacto da função.
Coisas para lembrar
- Você precisa saber qual número representa qual ano, mês e creche. Leia a explicação da sintaxe cuidadosamente para entender.
- O resultado será baseado no formato de data do seu sistema. Se você quiser um resultado modificado, então você precisa aplicar a função FORMAT e mencionar o formato da data conforme sua conveniência.