Função VBA IsDate

Função Excel VBA IsDate

IsDate é a função VBA que testa se o valor fornecido é a data ou não. Se o valor fornecido ou o valor de referência do intervalo for o valor da data, obteremos o resultado como "VERDADEIRO", se o valor não for o valor da data, obteremos o resultado como "FALSO". Portanto, o resultado é um valor BOOLEANO, ou seja, TRUE ou FALSE.

Abaixo está a sintaxe da função IsDate.

A expressão nada mais é do que o valor que estamos tentando testar, seja a data ou não.

Como usar a função VBA IsDate?

Você pode baixar este modelo VBA IsDate Excel aqui - modelo VBA IsDate Excel

Vamos testar se o valor “5.01.19” é um valor de data ou não.

Para isso, primeiro inicie o procedimento de macro do Excel.

Código:

 Sub IsDate_Example1 () End Sub 

Defina a variável para armazenar o valor da data e como o valor será o valor da data atribua o tipo de dados apenas como “Data”.

Código:

 Sub IsDate_Example1 () Dim MyDate As Date End Sub 

Agora atribua o valor de “5.1.19” à variável “MyDate”.

Código:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" End Sub 

Abra a caixa de mensagem no VBA agora

Código:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox (End Sub 

Nesta caixa de mensagem, testaremos se o valor de data fornecido para a variável “MyDate” é a data ou não usando a função “IsDate”. Primeiro, abra a função “IsDate”.

Código:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox IsDate (End Sub 

Expressão é o valor que estamos testando para descobrir se é Data ou não. Como já armazenamos o valor na variável “MyDate”, forneça apenas o nome da variável.

Código:

 Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox IsDate (MyDate) End Sub 

Ok, agora execute o código e veja o que temos na caixa de mensagem.

Uau!!! O resultado é VERDADEIRO .

Você deve estar se perguntando como ele reconheceu o valor “5.1.19” como a data.

A razão pela qual ele retornou o resultado como TRUE é porque quando você olha para o valor fornecido “5.1.19” é a forma abreviada da data “05.01.2019” então o excel é brilhante o suficiente para reconhecê-lo como data, então o resultado é verdade.

Agora vem a parte complicada, pelo mesmo valor o que faremos é alterar a versão abreviada do ano de 19 para 2019.

Código:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "5.1.2019" MsgBox IsDate (MyDate) End Sub 

Agora execute o código e veja o resultado.

Desta vez, ele retornou o resultado como FALSO porque a parte do “dia e mês” da data está na forma abreviada, mas a parte do ano está na forma completa de “AAAA”, então ISDATE não pode reconhecer que tem uma data, então o resultado é FALSO.

Agora, olhe para o código abaixo.

Código:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05.01.2019" MsgBox IsDate (MyDate) End Sub 

Eu mencionei o formato de dia inteiro e mês inteiro usando 0, vamos executar o código e ver o resultado da função IsDate.

Desta vez também obtemos o resultado como FALSE .

Agora mude o código da seguinte maneira.

Código:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019" MsgBox IsDate (MyDate) End Sub 

Em vez do ponto (.) Como separador, inserimos uma barra (/) como separador. Agora execute o código e veja o resultado.

Desta vez, obtivemos o resultado TRUE .

Esta é a razão pela qual eu disse a você no início do artigo que “Data” é uma coisa delicada.

Agora, o que vou fazer é mesclar a data e a hora.

Código:

 Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019 15:26:24" MsgBox IsDate (MyDate) End Sub 

O que eu adicionei acima é a parte do tempo “15:26:24” antes da data. Agora execute o código e veja o resultado.

Desta vez também obtivemos o resultado TRUE porque DATE & TIME no Excel são as mesmas coisas e armazenadas como números de série. O número inteiro representa a parte da data e as casas decimais representam a parte do tempo.

Coisas para lembrar aqui

  • IsDate retorna o resultado do tipo booleano, ou seja, TRUE ou FALSE.
  • IsDate está disponível apenas como uma função VBA.
  • Apenas datas formatadas válidas são tratadas como a data, caso contrário, serão tratadas como valores de texto e retornarão o resultado como FALSO.