Comparar datas no Microsoft Visual Basic for Applications não é diferente de comparar qualquer outro tipo de dado. Os valores que você compara devem ser do tipo "Date". Você pode usar os operadores de comparação padrão: "<" para "menor que"; "<=" para "menor ou igual a"; ">" para "maior que"; ">=" para "maior ou igual a"; "=" para "igual a"; e "<>" para "diferente de". Você também pode usar dois operadores de comparação, "Is" e "IsNot".
É útil lembrar como o VBA armazena valores de data na memória quando você compara datas. Uma data é armazenada como um número de ponto flutuante de precisão dupla, ou Double. A parte inteira longa é o número de dias, positivo ou negativo, desde 30 de dezembro de 1899. A parte decimal é a quantidade de tempo decorrida desde a meia-noite. Uma data sem hora tem sua parte decimal definida como zero. Por exemplo, 1 de maio de 1967 é armazenado como 24593.0. Isso significa que quando o VBA compara duas datas, na verdade está comparando dois números que representam dias.
Quando você compara datas no VBA, deve garantir que os valores que compara tenham tipo "Date" e não sejam strings de caracteres. Por exemplo, a string de caracteres "05/01/1999" é menor que a string "12/31/1900" porque "05" vem antes de "12". Converta uma string de caracteres para tipo date usando a função "CDate", por exemplo, "CDate(TextBox.Value)".
Além de CDate(), existem outras funções úteis que você pode usar ao comparar datas. A função "Date()" fornece a data de hoje como valor Date. A função "Now()" fornece a data e hora de hoje como valor Date. Como o tipo de dado Date também inclui um componente de tempo, você pode extrair apenas a parte da data de uma variável ao comparar datas usando a função "DateValue()", por exemplo, "If submission > DateValue(deadline) Then ..."
Como uma data é armazenada como o número de dias desde 30 de dezembro de 1899, você pode incluir aritmética de datas ao comparar datas no VBA. Por exemplo, se um bilhete expira três dias após ter sido comprado, você pode verificar um bilhete expirado com código VBA similar ao seguinte:
Public Function expired(purchase as Date) As Boolean
expired = False
If purchase+3 > Date() Then
expired = True
End If
End Function
Tecnologia Eletrônica © [www.351231.com]