Макрос не фильтрует даты

#excel #vba #autofilter

#преуспеть #vba #автофильтр #excel

Вопрос:

Когда я использую фильтр в интерфейсе Excel, я могу правильно сортировать даты. Однако я не могу заставить автофильтр работать с использованием VBA. Когда я запускаю макрос, каждая строка отфильтровывается. Это также происходит, когда я повторно использую записанный макрос из сработавшей фильтрации.

Основной макрос (я пробовал разные комбинации критериев!) — это:

 Sub FilterDates1()

    ActiveSheet.UsedRange.AutoFilter Field:=8, _
    Criteria1:=">" amp; Format([31/12/2018], "dd/mm/yyyy"), _
    Criteria2:="<=" amp; Format([31/12/2019], "dd/mm/yyyy")

End Sub
  

Макрос из регистратора является:

 Sub FilterDates2()

    ActiveSheet.Range("$A$1:$U$1450").AutoFilter Field:=8, _
    Criteria1:=">31/12/2018", Operator:=xlAnd, Criteria2:="<=31/12/2019"

End Sub
  

Но, как я уже сказал, это также отфильтровывает каждую строку.

Форматирование ячеек правильное, но в некоторых ячейках содержатся недопустимые записи (например, «Отменено»). Поскольку это данные, введенные пользователем, мне нужен макрос, который может допускать недопустимые записи.

Помощь с благодарностью принята!

Комментарии:

1. Format("31/12/2019", "dd/mm/yyyy") Format([31/12/2019], "dd/mm/yyyy") выдает 30/12/1899, поскольку он оценивает [ как 31, деленный на 12, деленный на 2019

Ответ №1:

Format("31/12/2019", "dd/mm/yyyy")

Format([31/12/2019], "dd/mm/yyyy") выдает 30/12/1899, поскольку он оценивает [ как 31, деленный на 12, деленный на 2019

Комментарии:

1. Спасибо @Nathan_Sav — для меня это новость, и я решил ее. Хотя сначала после я также изменил формат даты на "mm/dd/yyyy" , хотя он есть "dd/mm/yyyy" на листе!