VB: não compare datas com o operador '='
Variáveis do tipo Date armazenam valores no formato de ponto flutuante, assim como variáveis Double, com a parte inteira para a data e a parte fracional para a hora. Sendo valores de ponto flutuante, valores tipo Data podem ser sujeitos a problemas de arredondamento, e por isto você não deve comparar duas variáveis do tipo Data usando o operador '='. Ao contrário, use a função DateDiff, ou avalie a diferença entre as duas datas e cheque se ela é menor que um valor muito pequeno, como abaixo:
If Abs(Date1 -
Date2) < 1E-10 Then
MsgBox "Mesma data"
End If
.