Compreendendo a função Excel VBA IsDate

A função IsDate do VBA supostamente informa se uma string de texto pode ser interpretada como uma data. Por exemplo, todas as seguintes expressões são avaliadas como verdadeiras:

IsDate (“25/05/2015”)
IsDate (“16 de janeiro”)
IsDate (“12-1”)
IsDate (“01/12/15”)
IsDate (“2/30”)
IsDate (“30/2”)

Nos dois últimos exemplos, observe que IsDate não é exigente quanto à ordem do dia e do mês. Ambas as strings podem ser interpretadas como uma data, então IsDate retorna True (independentemente das configurações de formato de data do sistema).

Aqui estão algumas informações de um artigo de suporte da Microsoft :

As funções de data do VBA IsDate, Format, CDate e CVDate utilizam uma função encontrada na automação OLE (OleAut32.dll). Esta função pesquisa todos os formatos de data possíveis, tokenizando cada um dos valores separados na string que representa a data e retorna um valor booleano indicando se a entrada pode ser representada como uma data.

É importante lembrar isso ao usar a função para interpretar uma data que contém um ano de 2 dígitos. Localidades diferentes usam vários formatos de data (ou seja, mm / dd / aa, aa / mm / dd, DD MMM AA , AA MMM DD e assim por diante) e, portanto, a função tenta os dígitos em todas as posições até o função encontrou uma data válida ou esgotou todas as possibilidades.

Só porque IsDate reconhece uma string como uma data, não significa que a string pode ser convertida de forma confiável em uma data. Em alguns casos, o resultado é ambíguo. Por exemplo, que tal esta expressão?

IsDate (“29-Fev-01”)

29 de fevereiro de 2001 não é uma data válida. No entanto, esta expressão retorna True porque 1 de fevereiro de 1929 (e 2 de janeiro de 1929) são datas válidas. E também essas mesmas datas em 2029.

Uma pesquisa pela documentação IsDate não apareceu. Com base em testes, IsDate aceita qualquer um dos seguintes como caracteres separadores: uma barra (/), um hífen (-), uma vírgula (,), um ponto (.) E um espaço.

Portanto, todas as seguintes expressões retornam True:

IsDate (“5.1”)
IsDate (“30 6”)
IsDate (“30,6”)
IsDate (“1/2”)

Mas então há esta anomalia: as seguintes expressões retornam True:

IsDate (“5.1.5”)
IsDate (“5.1.05”)

No entanto, inexplicitamente, esta expressão retorna False:

IsDate (“5.1.2005”)

Suponha que você tenha criado um UserForm com um InputBox onde o usuário insere uma data. Deve ficar claro que usar IsDate para validar a entrada não é muito confiável.

As coisas ficam ainda mais confusas quando você percebe que IsDate também abrange valores de tempo. (Não há função IsTime correspondente.) Portanto, todas as seguintes expressões retornam True:

IsDate (“4:45”)
IsDate (“4,45”)
IsDate (“4 45”)
IsDate (“4/45”)
IsDate (“23:59”)

Essas expressões retornam False:

IsDate (“4:60”)
IsDate (“24,45”)

É importante ressaltar que IsDate não exibe todas essas peculiaridades quando você passa um argumento Range. Por exemplo:

IsDate (intervalo (“A1”))

Parece que IsDate é perfeitamente confiável na identificação de células que contêm uma data ou hora. Não identifica, por exemplo, uma célula que contém 5.1 como uma data. Se seu código precisa determinar se uma string pode ser interpretada como uma data, a melhor solução é colocar essa string em uma célula e, em seguida, escrever o código para verificar o conteúdo da célula.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferece um conjunto completo de aplicativos Office que rivalizam com o Microsoft 365, especialmente em Excel, PowerPoint e Word. Ele permite que você gerencie seus projetos de forma mais eficaz e suporta diversos formatos de arquivo.

Baixar iTaxviewer 1.8.7

Baixar iTaxviewer 1.8.7

O software iTaxViewer é o software de leitura de arquivos XML mais popular atualmente. Este software é uma aplicação para leitura de declarações fiscais eletrónicas em formato XML da Direção Geral de Impostos.

Leitor de PDF Nitro

Leitor de PDF Nitro

Nitro PDF Reader é um prático editor de PDF que cobre todas as tarefas básicas que a maioria das pessoas realiza todos os dias com documentos PDF.

Leitor Foxit 12

Leitor Foxit 12

Foxit Reader é principalmente um leitor de PDF e também permite criar arquivos PDF, assiná-los, editá-los e adicionar anotações. Funciona em sistemas operacionais, existem plugins para diversos programas do pacote Microsoft Office.