автофильтр в Excel2007

Программирование на Visual Basic for Applications
Lirin
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 12
Зарегистрирован: 03.12.2004 (Пт) 17:34
Откуда: Москва

автофильтр в Excel2007

Сообщение Lirin » 17.10.2007 (Ср) 11:12

есть лист с данными в экселе, на котором ставлю автофильтр по пустым полям в столбцах 3 и 5:
Код: Выделить всё
With ActiveSheet
            .AutoFilterMode = False
                With .Range(Cells(1, 1), Cells(MaxR, MaxC))
                     .AutoFilter
                     .AutoFilter Field:=3, Criteria1:="="
                     .AutoFilter Field:=5, Criteria1:="="
                End With
    End With


при попытке посчитать количество строк, выбранных автофильтром
Код: Выделить всё
MsgBox (ActiveSheet.AutoFilter.Range.Rows.SpecialCells(xlCellTypeVisible).Count)

получаю число 36, а на самом деле автофильтр ничего не выбрал, т.к. изначально нет строк попадающих под это условие. так откуда получается 36 строк??? и соответственно при попытке выделить диапазон строк
Код: Выделить всё
Set myFiltered = ActiveSheet.AutoFilter.Range.Offset(1, 0).Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1, _
       ActiveSheet.AutoFilter.Range.Columns.Count).SpecialCells(xlCellTypeVisible)

получаю ошибку "не найдено ни одной ячейки, удовлетворяющей условию"
подскажите, плз, как определить правильно наличие/отсутствие результата выборки автофильтром
Правила игры нужно знать, но лучше - устанавливать их самой...

@Nik
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 14.05.2007 (Пн) 12:11

Сообщение @Nik » 19.10.2007 (Пт) 14:42

Надо считать по одному столбцу, а не по всей таблице:
MsgBox (ActiveSheet.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count-1)

А у на офисе ХР формула, что вы привели для выделения диапазона, работает ;-)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

    TopList