Comparação de datas no VBA
Determinação do tipo
Não é necessário converter datas para o tipo de dados "Data" para fazer comparações se elas já estiverem nesse tipo. Você pode saber se uma variável é "Data" usando alguns métodos. Revise a seção de declarações no início de um procedimento do VBA. Esta seção é a parte em que você declara todas as variáveis usando a palavra-chave "Dim". Suas variáveis de data serão declaradas com instruções como as seguintes: "Dim d1 as Date". Outra maneira de saber se sua variável é do tipo "Data" é revisar as atribuições feitas para essa variável. Essas atribuições usarão o caractere "#", que indica um tipo "Data". Por exemplo, a instrução a seguir atribui a data "1/12/2001" à variável "D1", que é "Data".
D1 = # 12/1/2001 #
Como converter para o tipo de dados "Data"
Para comparar datas no VBA, primeiro é necessário ter duas datas armazenadas em "Data", que é um dos diferentes tipos de valores no VBA. O tipo "Data" é uma instância especial de todo o tipo de dados, portanto, comparar datas é essencialmente o mesmo que comparar inteiros. Se as datas ainda não estiverem em "Data", você precisará convertê-las. Você pode fazer isso usando a função CDate. Por exemplo, execute a seguinte instrução para converter a seqüência "12/1/2001" em um tipo "Data":
D1 = CDate ("12/1/2001")
A comparação
Se você quiser verificar se a data em uma variável "Data" ocorre antes de outra, use o símbolo 'menor que' conforme mostrado no exemplo a seguir:
Se (d1 <d2)
Use o símbolo 'maior que' para verificar se uma data ocorre após a outra e use o símbolo 'igual' para saber se os valores de ambas as variáveis se referem à mesma data.
Programa de amostra
Escreva um exemplo de programa que converta e compare datas, para que você possa consultar esse código ao escrever programas VBA mais complexos para executar esse procedimento. Abra o ambiente de programação em qualquer um dos aplicativos do Office, clicando no botão "Visual Basic" na guia "Desenvolvedor". Em seguida, cole o seguinte programa na janela central do ambiente. Ele usa a função "CDate" para converter strings em datas e faz três comparações diferentes entre duas delas. Execute o programa pressionando "F5" e observe a saída, marcando a janela "Immediate".
Public Sub CompareDates () Dim d1, d2 Como Date d1 = CDate ("12/1/2001") d2 = CDate ("12/1/2002") Se (d1 d2) Then Debug.Print "A data 1 ocorre depois data 2. " If (d1 = d2) Então Debug.Print "Data 1 é o mesmo que a data 2." End Sub