Excel VBA: оптимальное использование DateValue в VBA (или другой метод для сравнения дат) - PullRequest
0 голосов
/ 26 апреля 2018

Я написал макрос VBA в Access, который создает новый файл Excel на основе нескольких разных. Я не могу изменить способ форматирования данных в исходных файлах, и я хочу написать простую инструкцию IF (если дата X больше даты Y, удалить всю строку). Проблема в том, что даты имеют другой формат. Я могу сделать это, создав новый столбец:

=IF(DATEVALUE(A2)>DATEVALUE(H2),TRUE,FALSE)

А затем перейдите от этого и в конце удалите столбец. Это не кажется правильным, хотя, и я считаю, что есть лучшее решение. Я пытался сделать что-то вроде

 If ifDelete = vbYes And .Cells(Lrow, 19).Value Like "*timing*" And DateValue(.Cells(Lrow, 1).Value) > DateValue(.Cells(Lrow, 8).Value) Then
      .Cells(Lrow, 19).EntireRow.Delete
 End If

Но это, очевидно, не работает. Я также пытался работать с форматированием столбцов даты до запуска этого оператора IF, но все же не повезло. Если это помогает, даты форматируются в формате ММ / ДД / ГГГГ и М / Д / ГГГГ. По какой-то причине переход к .NumberFormat = "MM / DD / YYYY" во 2-м или обоих полях тоже не работает.

С уважением, heaton124.

1 Ответ

0 голосов
/ 31 июля 2018

Следуя предложению p.phidot, я поставил свой комментарий в качестве ответа, чтобы он мог быть помечен и, следовательно, доступен для других.

Итак, ответ:

Попробуйте использоватьфункция VBA CDate().

Приветствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...