У меня есть две ячейки в Excel, в которых есть поле даты, и я написал код VBA для удаления записей, основанных на датах.
Есть странный сценарий, с которым я столкнулся сегодня.
Сценарий 1: (рабочий сценарий)
Когда в столбцах указана дата в формате 30/04/2020 10:00:00
(dd/mm/yyyy
), приведенный ниже код работает нормально.
Сценарий 2 :( создано несоответствие)
Поскольку в столбце данных 01/05/2020 10:00:00
(формат dd/mm/yyyy
), мой код обрабатывает его как 01JAN2020 в VBA. вместо этого.
Пример кода приведен ниже:
a=worksheets("Sheet1").cells(row,col).value ' captures value in the required column
b=format (date-1,"DD-MM-YYYY") ' Captures yesterdays date for comparison purpose
c=format(a,"DD-MM-YYYY") 'This is to convert the required column format to the format that we are comparing the value with
if (b <> c) then
msgbox("This is an invalid record")
else
msgbox("Valid")
end if
Приведенный выше код работает, когда в столбце указана дата 30/04/2020 10:00:00
, которая рассматривается как 30-APR
, Но тот же код, который имеет запись 01/05/2020 10:00:00
, трактуется как 01-JAN
, и сравнение идет не так.
Может ли кто-нибудь помочь мне с этим разобраться? Существует простое форматирование, которое, как мне кажется, мне не хватает, и я не могу его отладить.
Ваша помощь в этом очень ценится.