Страницы: 1
RSS
Фильтрация таблицы по датам с помощью макроса
 
День добрый всем !

Макросом задача сделать фильтрацию Автофильтр  по датам в столбце таблицы
Предварительно пишу рекодером фильтрацию Рекодер показывает следующее
Код
ActiveSheet.Range("$A$3:$T$5000").AutoFilter Field:=11, _
 Criteria1:=">=01.06.2018", Operator:=xlAnd, Criteria2:="<=06.06.2018"

Далее заношу в макрос этот код
Код
Sub ЗапуститьАвтофильтрС01_06до06_06()
    ActiveSheet.Range("$A$3:$T$5000").AutoFilter Field:=11, _
 Criteria1:=">=01.06.2018", Operator:=xlAnd, Criteria2:="<=06.06.2018"
End Sub
и макрос не работает - не фильтрует выдает ничего - скрывает строки в диапазоне просто и не ищет диапазон дат.   Почему?
Вроде простая задача но факт  
Пример прилагаю
Изменено: oleg355 - 01.06.2018 17:49:16
 
Код
    ActiveSheet.Range("$A$3:$T$5000").AutoFilter Field:=11, Criteria1:= _
        ">=" & CDbl(DateValue("01.06.2018")), Operator:=xlAnd, Criteria2:= _
        "<=" & CDbl(DateValue("06.06.2018"))
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
oleg355 написал:
Вроде простая задача но факт
Тоже столкнулся когда-то с этой проблемой)
Небольшое объяснение "для потомков") хоть это все и есть в справке.
Эксель оперирует с датами как с числами.
То есть 01.06.2018 для него 43252,00. То есть количество дней, которое прошло от 00.01.1900 (дата взятая за точку отсчета)
Значение которое вы передаете в фильтр "01.06.2018" - имеет текстовый формат.
Поэтому его сначала нужно преобразовать в дату DateValue("01.06.2018"), потом в число CDbl(DateValue и только потом "засунуть" в фильтр.
 
Благодарю за ответы ! Все получилось
Страницы: 1
Наверх