Função CDate do Excel VBA

Você já ouviu falar da função ou comando pelo qual podemos converter qualquer coisa em data e hora? Sim, junto com a função Date, temos a função CDate no VBA, que faz isso. CDate é a função do excel, mas isso também pode ser feito no VBA. CDate converte qualquer coisa, exceto no formato de data padrão. Isso pode ser usado para converter a hora e também a Data.

A sintaxe do CDate é a sintaxe mais fácil que já vimos. O CDate considera apenas expressões como Data e hora em qualquer formato como entrada. Abaixo está a sintaxe dele.

Nós apenas precisamos alimentar qualquer número, data ou hora em qualquer formato que tenhamos e o CDate o converterá automaticamente no formato padrão de Data e Hora.

Como usar a função CDate do Excel VBA?

Vamos aprender como usar uma função CDBA do VBA com alguns exemplos no Excel.

Você pode fazer o download deste modelo do VBA CDate Excel aqui - Modelo do VBA CDate Excel

CDBA do VBA - Exemplo # 1

Vamos dar um exemplo simples primeiro. Neste exemplo, tentaremos converter um tipo simples de data em um formato padrão que seja embutido no Excel por padrão.

Siga as etapas abaixo para usar a função CDate no VBA.

Etapa 1: Abra um módulo que está disponível na guia do menu Inserir, como mostrado abaixo.

Etapa 2: Agora escreva o subprocedimento do VBA CDate em qualquer nome, como mostrado abaixo. Mas é recomendável escrever principalmente o nome do subprocedimento no nome do trabalho realizado.

Código:

 Sub VBA_CDate () End Sub 

Etapa 3: Agora declare uma variável, digamos que seja Input1 como String . Considerando o tipo de dados como String, estaremos citando a entrada na combinação de números e alfabetos.

Código:

 Sub VBA_CDate () Dim Input1 como String End Sub 

Etapa 4: Agora declararemos outra variável pela qual veremos a saída. E essa variável será usada para ver as datas.

Código:

 Sub VBA_CDate () Dim Input1 como sequência Dim FormatDate As Date End Sub 

Etapa 5: agora escolha qualquer data que esteja na combinação de números e alfabetos e cite-a entre vírgulas invertidas, como mostrado abaixo.

Código:

 Sub VBA_CDate () Dim Input1 como string Dim FormatDate As Date Input1 = "1 de setembro de 2019" End Sub 

Etapa 6: Para converter a data de entrada em um formato padrão, usaremos a função CDate como mostrado abaixo com a variável FormatDate que foi declarada acima. E use o valor armazenado na variável Input1.

Código:

 Sub VBA_CDate () Dim Input1 como string Dim FormatDate As Date Input1 = "1 de setembro de 2019" FormatDate = CDate (Input1) End Sub 

Etapa 7: E para ver a saída, usaremos o Msgbox para atribuí-la à função FormatDate da data.

Código:

 Sub VBA_CDate () Dim Input1 como string Dim FormatDate As Date Input1 = "1 de setembro de 2019" FormatDate = CDate (Input1) MsgBox FormatDate End Sub 

Etapa 8: Agora execute o código pressionando a tecla F5 ou clicando no botão Play. Obteremos a data que escolhemos como 1º de setembro de 2019 e agora será convertida para o formato de data padrão como 01/09/2019, como mostrado abaixo.

Podemos tentar diferentes combinações múltiplas de datas que realmente existem e ver que tipo de saída padrão obtemos.

CDBA do VBA - Exemplo # 2

Neste exemplo, veremos diferentes tipos de data e hora existentes e que tipo de saída obteríamos ao usar o VBA CDate. Para isso, siga as etapas abaixo:

Etapa 1: escreva o subprocedimento do VBA CDate, como mostrado abaixo.

Código:

 Sub VBA_CDate2 () End Sub 

Etapa 2: agora declararemos 3-4 variáveis ​​diferentes do tipo Data. Vamos declarar a primeira variável como Data1 e fornecer o tipo de dados como Data, conforme mostrado abaixo.

Código:

 Sub VBA_CDate2 () Dim Data1 Como Data Final Sub 

Etapa 3: agora atribua qualquer número que deseje convertê-lo no formato Data. Escolhemos um número aleatório como 12345.

Código:

 Sub VBA_CDate2 () Dim Dim1 como Data Date1 = "12345" End Sub 

Etapa 4: de maneira semelhante, defina outra variável Data2 como o tipo de data Data, como mostrado abaixo.

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = "12345" Dim Date2 Como Data End Sub 

Etapa 5: Agora, novamente na variável Data2, considere colocar uma data em qualquer formato. Aqui mantivemos 12/3/45 como entrada de data.

Código:

 Sub VBA_CDate2 () Dim Dim1 Como Data Data1 = "12345" Dim Dim Data2 Como Data Data2 = "12/3/45" End Sub 

Etapa 6: Além disso, declararemos outra variável Date3 como Data.

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = "12345" Dim Date2 Como Data Date2 = "12/3/45" Dim Date3 Como Data End Sub 

Etapa 7: Aqui, atribuiremos o valor de qualquer momento, como mostrado abaixo, às 12:10 no formato de 24 horas.

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = "12345" Dim Date2 Como Data Date2 = "12/3/45" Dim Date3 Como Data Date3 = "00:10:00" End Sub 

Etapa 8: Agora, por último, declararemos outra variável Date4 como Data.

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = "12345" Dim Date2 Como Data Date2 = "12/3/45" Dim Date3 Como Data Date3 = "00:10:00" Dim Date4 Como Data Fim Sub 

Etapa 9: e aqui forneceremos algum valor decimal como 0, 123 ou você poderá escolher qualquer valor conforme necessário.

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = "12345" Dim Date2 Como Data Date2 = "12/3/45" Dim Date3 Como Data Date3 = "00:10:00" Dim Date4 Como Data Date4 = "0, 123" End Sub 

Agora, existem 2 maneiras de ver a saída dos valores armazenados em várias variáveis ​​declaradas acima. MsgBox nos permitirá ver todos os valores simultaneamente, mas usando Debug.print nos permitirá ver todas as variáveis ​​geradas de uma só vez.

Etapa 10: Então, aqui é melhor escolhermos Debug.Print, como mostrado abaixo. E na mesma linha, atribua todas as variáveis, começando da Data 1 até a Data 4.

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = "12345" Dim Date2 Como Data Date2 = "12/3/45" Dim Date3 Como Data Date3 = "00:10:00" Dim Date4 Como Data Date4 = "0.123" Debug. Imprimir Data1, Data2, Data3, Data4 Fim Sub 

Etapa 11: E para ver a saída, usaremos a janela imediata, como mostrado abaixo. Para acessar isso, vá para a guia do menu Exibir e selecione Janela imediata, como mostrado abaixo.

Etapa 12: Agora execute o código pressionando a tecla F5 ou clicando no botão Play. Veremos que o tipo de dados de data nos forneceu a saída, mas não está no formato de dados padrão.

Etapa 13: para obter os dados padrão, usaremos o CDate aqui também. Portanto, atribuiremos o CDate para cada data e hora que usamos para diferentes variáveis, como mostrado abaixo.

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = CDate ("12345") Dim Date2 Como Data Date2 = CDate ("12/3/45") Dim Date3 Como Data Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("0.123") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Etapa 14: Agora execute o código pressionando a tecla F5 ou clicando no botão Play.

Veremos que a saída de Data e CDate é a mesma, mas há uma diferença comum básica entre os dois. E isto é, o CDate pode converter qualquer tipo de número em formato de data padrão.

Etapa 15: vamos tentar qualquer texto ou alfabeto com o CDate e ver o que temos. Portanto, inserimos algum texto aleatório como abc na variável Date4 .

Código:

 Sub VBA_CDate2 () Dim Date1 Como Data Date1 = CDate ("12345") Dim Date2 Como Data Date2 = CDate ("12/3/45") Dim Date3 Como Data Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("abc") Data de depuração.Print1, Date2, Date3, Date4 End Sub 

Etapa 16: Agora execute o código novamente. Iremos receber uma caixa de mensagem com uma mensagem de erro como Tipo incompatível . Isso ocorre porque o CDate não pode ler e converter texto em um formato de data e hora padrão.

Prós e contras da função CDate do Excel VBA

  • Isso pode converter qualquer data ou hora para o formato padrão, conforme necessário.
  • O CDBA do VBA interpreta qualquer número como valor de Data e depois converte-o em um formato padrão.
  • Não pode interpretar e converter o texto em formato de data.

Coisas para lembrar

  • O CDate pode considerar apenas números como entrada, mas esse número pode estar em qualquer formato.
  • O valor do texto não pode ser convertido.
  • Se alimentarmos uma hora ou data que já esteja no formato padrão, ele retornará novamente o mesmo valor que a saída.
  • Data e função CDate funcionam da mesma maneira. Enquanto no CDate podemos converter a hora e a data.

Artigos recomendados

Este é um guia para a função CDBA do VBA. Aqui discutimos como usar a função CDate no Excel usando o código VBA, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Formato de Data VBA
  2. Função DATEDIF do Excel
  3. VBA DateSerial
  4. Função DATEDIF do Excel

Categoria: