Это еще хуже:
При сравнении 31 декабря с 1 января следующего года,
DateDiff
для Года ("гггг") возвращает 1, даже если прошел только один день, говорит Microsoft .
Так что вам лучше сравнить две даты, например, если день рождения был раньше дня 21 год назад.
Dim datBirthday as Date
datBirthday = CDate(InputBox("Input date of birth to be verified: ", "Date of Birth"))
If datBirthday < DateSerial(Year(Date) - 21, Month(Date), Day(Date)) Then
Я изменил имя переменной, какначало с "str" немного вводит в заблуждение при использовании значений даты.