Este tutorial demonstrará como formatar datas usando o VBA.
Formatar datas em VBA
Existem dois métodos para formatar datas usando o VBA.
- A propriedade NumberFormat de Cells / Ranges - Para formatar datas armazenadas em células
- A função de formato VBA - para formatar datas em VBA (ex. Variáveis)
NumberFormat - Datas
O formato de número padrão de uma célula no Excel é Geral. Você pode exibir valores como números, texto, datas, porcentagens ou moedas, alterando o formato do número. A propriedade NumberFormat pode ser usada no VBA para definir o formato de número de datas em uma célula ou intervalo.
Observação: Para ver os diferentes formatos de data padrão disponíveis no Excel, vá para Home> Número e você verá opções como Data Abreviada, Data Longa e Hora.
Encontro curto
A opção de formatação de número de data abreviada exibe a data em um formato numérico curto.
O código a seguir definirá a propriedade .NumberFormat da célula A1 como data abreviada:
1 | Intervalo ("A1"). NumberFormat = "mm / dd / aaaa" |
Data Longa
A formatação de número de data longa exibe a data em um formato escrito mais longo. O código a seguir definirá a propriedade .NumberFormat da célula A1 para data longa:
1 | Intervalo ("A1"). NumberFormat = "dddd, mmmm dd, aaaa" |
Datas personalizadas
Para ver os códigos de formato de número personalizados que você pode usar no VBA para formatar datas, vá para Página inicial> Número e clique no Iniciador da caixa de diálogo. Selecione a guia Número e escolha Personalizado.
Você pode selecionar os formatos integrados personalizados para sua data ou criar seus próprios formatos de data definidos pelo usuário. O código a seguir definirá a propriedade .NumberFormat da célula A1 para um formato de data personalizado integrado:
1 | Intervalo ("A1"). NumberFormat = "mmm-aa" |
O resultado é:
O código a seguir definirá a propriedade .NumberFormat da célula A1, para um formato de data personalizado definido pelo usuário:
1 | Intervalo ("A1"). NumberFormat = "dddd-dd-mmm-aa" |
O resultado é:
Ao revisar os exemplos pré-construídos do Excel, você pode aprender como os NumberFormats devem ser inseridos. Para obter mais informações, leia a documentação da Microsoft sobre formatos de números para datas.
Função de formato VBA
Conforme mencionado acima, o método NumberFormat é apropriado para definir o Numberformat de datas armazenadas em células do Excel. No VBA, você pode usar a função Format para converter datas em strings com determinada formatação de data.
Você usaria a seguinte sintaxe para formatar datas:
Format (String_Representation, NumberFormatCode) onde:
String_Representation - a string de texto que representa a data.
NumberFormatCode - o código de formato de número que especifica a maneira como a data deve ser exibida.
O código a seguir mostra como formatar uma representação de string de texto de uma data como formato de data longa:
1 | Formato MsgBox ("01/01/2010", "dddd, mmmm dd, aaaa") |
O resultado é:
Observe que a função Format usa a mesma sintaxe de formatação de data que o NumberFormat acima.
O código a seguir mostra como formatar uma representação de string de texto de uma data como formato de data médio:
1 | Formato MsgBox ("09 de outubro de 2012", "Data média") |
O resultado é:
O código a seguir mostra como formatar uma representação de string de texto de uma data como um formato definido pelo usuário:
1 | Formato MsgBox ("09 de outubro de 2012", "dddd: dd / mm / aa") |
Construtor de formato personalizado VBA
Nosso VBA Add-in: AutoMacro contém um Custom Format Builder para o VBA Editor. Isso permite que você defina formatos personalizados e visualize imediatamente a saída para o valor desejado:
O suplemento VBA contém vários outros “Geradores de código”, uma extensa biblioteca de códigos e uma variedade de outras ferramentas de codificação. É o complemento definitivo para qualquer pessoa interessada em programação VBA!
Data do formato VBA no Access
A função VBA Format Date funciona exatamente da mesma forma no Access VBA e no Excel VBA.
12345678910 | Função GetDateFilter () As String'criar uma string para obter informações de 2 campos de data em um formulário no AccessDim strDateField As StringIf IsNull (Me.txtSDate) = False ThenIf IsNull (Me.txtEDate) = True Then Me.txtEDate = Me.txtSDateIf strDateField2 = "" EntãoGetDateFilter = strDateField & "Between #" & Format (Me.txtSDate, "mm / dd / yyyy") & "# And #" & Format (Me.txtEDate, "mm / dd / aaaa") & "#"Fim seFim seFunção Final |