Data do formato VBA - Como alterar o formato da data no código VBA?

Data do formato Excel VBA

Para formatar uma data em VBA , usamos a própria função FORMAT embutida, ela recebe a entrada como o formato de data e retorna o formato desejado necessário, os argumentos necessários para esta função são a própria expressão e o tipo de formato.

A formatação de data e hora são coisas sensíveis no Excel, e a mesma coisa se aplica ao VBA também. A data e hora padrão são baseadas na data do sistema em que estamos trabalhando, que pode variar de sistema para sistema. Neste artigo, mostraremos diferentes técnicas para formatar datas com códigos VBA.

Para alterar o formato de data com a codificação VBA, precisamos estar cientes de quais são os formatos de data e seu impacto na data.

A tabela abaixo mostra os diferentes formatos de data e seus códigos.

Portanto, se você tiver em mente o gráfico acima, a formatação da data por meio da codificação VBA não é uma tarefa difícil.

Como alterar o formato da data no VBA?

Abaixo estão os exemplos de formato de data VBA do Excel.

Exemplo 1

Por exemplo, temos a mesma data em várias células da planilha, conforme mostrado abaixo.

Agora vamos aplicar formatos de data diferentes para a mesma data para ver o impacto em códigos de formato de data diferentes.

Primeiro, copie os mesmos dados para a próxima coluna também para ver o impacto.

Para a primeira data, ou seja, célula A1, aplicaremos o formato “DD-MM-AAAA” .

No código, primeiro, precisamos selecionar a célula usando o objeto RANGE .

Código:

Sub Date_Format_Example1 () Intervalo ("A1") End Sub

Como estamos mudando o formato da data da célula, precisamos acessar a propriedade “ Number Format ” do objeto RANGE.

Código:

Sub Date_Format_Example1 () Intervalo ("A1"). NumberFormat End Sub

Depois de acessar “ Formato do Número ”, precisamos definir o formato do número colocando o sinal de igual e aplicar o código de formato entre aspas duplas.

Código:

Sub Date_Format_Example1 () Intervalo ("A1"). NumberFormat = "dd-mm-aaaa" 'Isso mudará a data para "23-10-2019" End Sub

Quando executarmos este código, ele aplicará o formato de número à célula A1 como “ DD-MM-AAA”.

Resultado:

Exemplo # 2

Da mesma forma, apliquei códigos de formatação diferentes para outras células também, e abaixo está o código VBA para você.

Código:

Sub Date_Format_Example2 () Intervalo ("A1"). NumberFormat = "dd-mm-aaaa" 'Isso mudará a data para "23-10-2019" Intervalo ("A2"). NumberFormat = "ddd-mm-aaaa" 'Isso mudará a data para "Quarta-10-2019" Intervalo ("A3"). NumberFormat = "dddd-mm-aaaa"' Isso mudará a data para "Quarta-10-2019" Intervalo ("A4") .NumberFormat = "dd-mmm-aaaa" 'Isso mudará a data para "23-Out-2019" Intervalo ("A5"). NumberFormat = "dd-mmmm-aaaa"' Isso mudará a data para "23- Outubro-2019 "Intervalo (" A6 "). NumberFormat =" dd-mm-aa "'Isso mudará a data para" 23-10-19 "Intervalo (" A7 "). NumberFormat =" ddd mmm aaaa "' mudará a data para "Quarta-feira, outubro de 2019"Range ("A8"). NumberFormat = "dddd mmmm aaaa" 'Isso mudará a data para "Quarta-feira de outubro de 2019" End Sub

O resultado deste código será o seguinte.

Resultado:

Alterar o formato da data usando a função FORMAT

No VBA, temos uma função chamada FORMAT, que pode ser usada para aplicar o formato desejado à célula.

Precisamos apenas especificar qual é o valor de “Expressão” e aplicar o “Formato” de acordo.

Veja o código abaixo para obter um exemplo.

Código:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYYY") End Sub

No código acima, defini a variável como variante (que pode conter qualquer valor).

Código:

Dim MyVal As Variant

Em seguida, para esta variável, atribuí o valor de 43586.

Código:

MyVal = 43586

Next, in the message box, I have shown the result of the variable, but before we show the result, we have used the “FORMAT” function to format the value of the variable “MyVal,” and the format is given. “DD-MM-YYYY.”

Code:

MsgBox Format(MyVal, "DD-MM-YYY")

Ok, let’s run the code and see the result in the message box in VBA.

Output:

As you can see above, the result shows as “01-05-2019”.

Now you must be wondering we have supplied the serial number but the result showing as the date. This is because Excel stores the date as serial numbers, so the value 43586 is equal to the date “01-05-2019,” and if you increase the number by 1 i.e., 43587, the date will be “02-05-2019”.

Code:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYY") End Sub

Coisas para lembrar

  • A data padrão do seu sistema será aplicada ao seu Excel também.
  • A propriedade Number Format pode ser usada para alterar o formato da data no VBA.
  • Usando a função FORMAT, podemos alterar o formato da data.
  • O Excel armazena as datas como números de série e, se você aplicar o formato de data, ele será exibido de acordo.

Artigos interessantes...