Pode utilizar a seguinte sintaxe básica no VBA para comparar duas datas:

 Sub CompareDates() Dim i As Integer For i = 2 To 5 If CDate(Range(" A " & i)) CDate(Range(" B " & i)) Then Result = " First Date is Later " Else Result = " Dates Are Equal " End If End If Range(" C " & i) = Result Next i End Sub 

Este exemplo específico irá comparar as datas nas células correspondentes nos intervalos A2:A5 e B2:B5 e devolver o resultado das comparações de datas no intervalo C2:C5 .

Nota : O CDate converte o valor de uma determinada célula numa data.

O exemplo seguinte mostra como utilizar esta sintaxe na prática.

Exemplo: Comparar datas no VBA

Suponhamos que temos as duas colunas seguintes com datas no Excel:

Suponhamos que gostaríamos de comparar as datas em cada linha correspondente e apresentar os resultados da comparação de datas na coluna C.

Para o efeito, podemos criar a seguinte macro:

 Sub CompareDates() Dim i As Integer For i = 2 To 5 If CDate(Range(" A " & i)) CDate(Range(" B " & i)) Then Result = " First Date is Later " Else Result = " Dates Are Equal " End If End If Range(" C " & i) = Result Next i End Sub 

Quando executamos esta macro, obtemos a seguinte saída:

Os resultados das comparações de datas são agora apresentados na coluna C.