Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2010, 17:26   #1
НеВа6464
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 64
По умолчанию Дата, как критерий автофильтра

Что-то у меня при использовании автофильтра в ВБА, этот самый автофильтр не дружит с датами.
При использовании записи макроса формируется команда подобная приведённой ниже:
Цитата:
Selection.AutoFilter field:=1, Criteria1:=">=01.07.2010", Operator:=xlAnd, Criteria2:="<01.08.2010"
При выполнении этой команды из ВБА таблица просто сворачивается, словно ни одна из строчек не соответствует критериям отбора. Если же кликнуть на посиневшую стрелочку автофильтра то с изумлением вижу, что заданные критерии таки попали в нужные поля. После нажатия на ОК таблица фильтруется как надо. Получается, что в данном случае требуется дополнительное ручное усилие. Существует ли другой способ фильтровать колонку по дате программным путём?
НеВа6464 вне форума Ответить с цитированием
Старый 14.08.2010, 17:51   #2
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

необходимо указывать дату в числовом отображении, например

Код:
Selection.AutoFilter Field:=4, Criteria1:=">=" & CLng([d28]), Operator:=xlAnd, Criteria2:="<=" & CLng([g28])
В ячейке [g28] указана дата в формате: ддммгггг

Пример решения Вашего вопроса: http://programmersforum.ru/showthread.php?t=106097
EugeneS вне форума Ответить с цитированием
Старый 14.08.2010, 17:57   #3
KL (XL)
Форумчанин
 
Аватар для KL (XL)
 
Регистрация: 04.08.2009
Сообщений: 112
По умолчанию

А так?

Код:
Selection.AutoFilter field:=1, Criteria1:=">=2010-07-01", Operator:=xlAnd, Criteria2:="<2010-08-01"
KL [MVP - Microsoft Office Excel]
CPU: Intel Core 2, 2.17GHz | RAM: 3.25GB (4GB) | GPU: nVidia Quadro FX 2500M
OS: Windows 7 Ultimate x64 EN | MSO: 2010 Professional Plus x86 EN
KL (XL) вне форума Ответить с цитированием
Старый 14.08.2010, 18:36   #4
НеВа6464
Пользователь
 
Регистрация: 16.05.2009
Сообщений: 64
По умолчанию

Спасибо EugeneS и KL (XL)!
Оба метода действуют. Метод EugeneS мне немного больше подходит. Я его чуток подправил под себя. Вместо статического адреса ячейки вставил поименованную ячейку, которая по мере роста таблицы смещается вниз, но всегда на виду и легко доступна.
Примерно так:
Код:
Selection.AutoFilter Field:=1, Criteria1:=">=" & CLng(Range("Дата_больше")), Operator:=xlAnd, Criteria2:="<=" & CLng(Range("Дата_меньше"))
НеВа6464 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычитание дат(дата-дата=кол.дней) zallza Общие вопросы Delphi 1 31.05.2010 22:50
Как вывести критерии автофильтра в отдельное поле Lybrary Microsoft Office Excel 2 18.12.2009 15:14
Сложный критерий поиска Обыватель Microsoft Office Excel 2 18.12.2009 09:40
Как в функции СЧЁТЕСЛИ указать критерий в виде ссыки на ячейку? CaustiC Microsoft Office Excel 1 05.12.2008 07:16
как сделать нумерацию попорядку после автофильтра SnowManTomsk Microsoft Office Excel 3 14.03.2008 20:55