>> Tecnologia eletrônica >  >> Lar inteligente >> Vida Inteligente

Comparação de datas no VBA


Comparar datas no Microsoft Visual Basic for Applications não é diferente de comparar qualquer outro tipo de dados. Os valores que você compara devem ser do tipo "Data". 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".

Tipo de data VBA


É útil lembrar como o VBA armazena valores de data na memória quando você compara as datas. Uma data é armazenada como um número de ponto flutuante de precisão dupla ou um Double. A parte inteira longa é o número de dias, positivo ou negativo, desde 30 de dezembro de 1899. A parte decimal é o tempo decorrido 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.

Cadeia de caracteres vs. Data


Ao comparar datas no VBA, você deve garantir que os valores comparados tenham um tipo "Data" e não sejam cadeias de caracteres. Por exemplo, a cadeia de caracteres "01/05/1999" é menor que a cadeia de caracteres "31/12/1900" porque "05" vem antes de "12". Converta uma cadeia de caracteres em um tipo de data usando a função "CDate", por exemplo, "CDate(TextBox.Value)".

Funções úteis


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 um valor Date. A função "Now()" fornece a data e hora de hoje como um valor Date. Como o tipo de dados Date também inclui um componente de hora, você pode extrair apenas a parte de data de uma variável ao comparar datas usando a função "DateValue()", por exemplo, "If submit> DateValue(deadline) Then ..."

Aritmética de data


Como uma data é armazenada como o número de dias desde 30 de dezembro de 1899, você pode incluir a aritmética de datas ao comparar datas no VBA. Por exemplo, se um ingresso expirar três dias após a compra, você poderá verificar se há um ingresso vencido com um código VBA semelhante ao seguinte:

Função pública expirou(compra como data) Como booleano expirou =False If compra+3> Date() Então expirou =True End If End Function