VBA IsDate - Como usar a função Excel 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?

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

Para este primeiro início, 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

A 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 é VERDADEIRO.

Agora vem o truque, para o mesmo valor, o que faremos é mudar 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 curta, 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

Mencionei um 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 farei é 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 da hora “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.

Artigos interessantes...