Несколько рекомендаций: избегайте использования операторов goto, поскольку они могут привести к неорганизованному и трудному для понимания коду. Использование IsDate
позволит VBA проверить дату, не допуская возникновения ошибки. Использование скобок может быть более кратким способом определения диапазонов ссылок. Вам не нужно объявлять ответ как переменную, просто проверьте результат работы подсказки. И, наконец, вы можете просто вызвать макрос, если пользователь хочет повторить попытку.
Sub CheckDate ()
if IsDate([A1].Value) then
Vba.Date = [A1].Value
else
if Msgbox("An error has occurred, would you like to retry?", VbRetryCancel) = VbRetry Then CheckDate
end if
End Sub