Проблема при сравнении дат в VBA? - PullRequest
2 голосов
/ 02 мая 2019

Я пытаюсь сравнить две даты, используя следующий код:

MsgBox (Format("07-12-2018", "dd-MMM-yyyy") > Format("31-12-2016", "dd-MMM-yyyy"))

Хотя первая дата больше, чем вторая, в окне сообщения отображается False

1 Ответ

2 голосов
/ 02 мая 2019

Вместо сравнения строк используйте функцию DateValue или DateSerial .

DateValue

MsgBox (DateValue("07-12-2018") > DateValue("31-12-2016")) 

Thisбудет правильно отображаться True

Примечание:

DateValue распознает порядок для месяца, дня и года в соответствии с форматом краткой даты, который вы указали для вашей системы

DateSerial

Независимо от формата краткой даты локальной системы, поскольку он использует отдельные аргументы для года, месяца и даты:

MsgBox (DateSerial(2018,12,7) > DateSerial(2016,12,31))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...