fdate
и bdate
оба объявлены как строки.
Итак, в этой строке:
If fdate > bdate Then
Вы не сравниваете даты с оператором >
. Вы сравниваете строки, что означает алфавитный порядок.
Если вы находитесь в США или любой другой стране, которая форматирует даты как "MM/DD/YYY..."
, и ваши настройки локали в Excel отражают это, тогда строка "12/31/2018"
будет оцениваться как больше, чем строка "01/01/2019"
, из-за алфавитного порядка , Если бы это были даты, было бы наоборот.
Самое простое решение - просто объявить bdate
и fdate
как вариант или дату.