#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"
на листе!