Data do formato 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 a 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.

Você pode baixar este modelo Excel de data de formato VBA aqui - Modelo Excel de data de formato VBA

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 numérico ”, 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-AAAA ”.

Resultado:

Exemplo # 2

Da mesma forma, apliquei diferentes códigos de formatação para outras células 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 "' Este mudará a data para "Quarta, 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 Formato (MyVal, "DD-MM-AAAA") 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

A seguir na caixa de mensagem, mostrei o resultado da variável, mas antes de mostrar o resultado usamos a função “ FORMAT ” para formatar o valor da variável “ MyVal ” e o formato dado é “ DD-MM- AAAA ”.

Código:

Formato MsgBox (MyVal, "DD-MM-AAAA")

Ok, vamos executar o código e ver o resultado na caixa de mensagem do VBA.

Resultado:

Como você pode ver acima, o resultado é “ 01-05-2019 ”.

Agora você deve estar se perguntando se fornecemos o número de série, mas o resultado é mostrado como a data. Isso ocorre porque o Excel armazena as datas como números de série, então o valor 43586 é igual à data “01-05-2019” e se você aumentar o número em 1, ou seja, 43587 a data será “02-05-2019”.

Código:

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

Things to Remember

  • The default date of your system will be applied to your excel as well.
  • Number Format property can be used to change the date format in VBA.
  • Using the FORMAT function, we can change the date format.
  • Excel stores date as serial numbers and if you apply date format it will show accordingly.