Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтрация в Excel с несколькими критериям 
:(
    Опции темы
swetik1981
Дата 4.11.2012, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.12.2007

Репутация: нет
Всего: нет



В одном из листов книги Excel содержатся данные, третий столбец которых содержит значения дат. 
 Необходимо через VBA задать фильтрацию данных таким образом, чтобы были выбраны все строки, в которых дата в третьем столбце имеет значение между определёнными датами (скажем между 05.01.2012 и 25.01.2012) , либо не содержит никакого значения. 
 Напрашивается что-то вроде: 
Код

ActiveSheet.Cells.AutoFilter Field:=3, Criteria1:=">=01/05/2012", Operator:=xlAnd, Criteria2:="<=05/25/2012", Operator:=xlOr, Criteria3:="="


 Но на третий критерий VBA выдаёт ошибку. Что можно тут сделать?
PM MAIL   Вверх
dorogoyIV
Дата 4.11.2012, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 4
Всего: 46



Цитата(swetik1981 @  4.11.2012,  14:29 Найти цитируемый пост)
код Visual Basic1:ActiveSheet.Cells.AutoFilter Field:=3, Criteria1:=">=01/05/2012", Operator:=xlAnd, Criteria2:="<=05/25/2012", Operator:=xlOr, Criteria3:="="

ну это же совсем неправильно  smile 

в Excel есть справка:
Цитата

Filter.Criteria1 Property 
Returns the first filtered value for the specified column in a filtered range. Read-only Variant.
Syntax
expression.Criteria1
expression   A variable that represents a Filter object.
Example
The following example sets a variable to the value of the Criteria1 property of the filter for the first column in the filtered range on the Crew worksheet.

Visual Basic for Applications 
With Worksheets("Crew")
    If .AutoFilterMode Then
        With .AutoFilter.Filters(1)
            If .On Then c1 = .Criteria1
        End With
    End If
End With 

PM MAIL   Вверх
swetik1981
Дата 4.11.2012, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 20.12.2007

Репутация: нет
Всего: нет



Цитата(dorogoyIV @  4.11.2012,  15:58 Найти цитируемый пост)
в Excel есть справка:


Каким образом приведённый Вами пример позволяет фильтровать данные по трём критериям??

PM MAIL   Вверх
dorogoyIV
Дата 5.11.2012, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 4
Всего: 46



нет такого параметра - Criteria3

Код

Sub DateFilter()
 Dim dFirst As Date, dLast As Date
 dFirst = DateValue("05/01/2012")
 dLast = DateValue("25/01/2012")
 
 For i = 1 To 31
    If (Cells(i, 3) < dFirst Or Cells(i, 3) > dLast) And Cells(i, 3) <> "" Then
        Rows(i).Hidden = True
    End If
 Next i
End Sub

Private Function UnhideRows()
 For i = 1 To 31
    Rows(i).Hidden = False
 Next i
End Function

PM MAIL   Вверх
FINANSIST
Дата 6.11.2012, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 11.4.2008
Где: Москва

Репутация: 13
Всего: 23



swetik1981, "расширенный фильтр" в помощь!


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.