Автофильтр Excel VBA между процентами

Я хочу получить общее количество строк, где процент плотности больше 60%, но меньше 90%.

Я делаю это через VBA, чтобы добавить фильтры в столбец плотности (процентный формат):

With ActiveSheet
        .AutoFilterMode = False
                With .Range("A3:EB3")

                     .AutoFilter
                     .AutoFilter Field:=98, Criteria1:=">9"
                     .AutoFilter Field:=99, Criteria1:=">2014"
                     .AutoFilter Field:=23, Criteria1:=">60%"
                     .AutoFilter Field:=23, Criteria1:="<90%"

                End With
    End With

Но автоматический фильтр не отображает строки


person Saurabh    schedule 18.03.2016    source источник


Ответы (1)


Чтобы применить критерии МЕЖДУ к столбцу W в методе Range.AutoFilter, вам нужно вывести и нижнюю, и верхнюю границы в одну командную строку.

    Dim cnt As Long

    With Worksheets("Sheet2")
        If .AutoFilterMode Then .AutoFilterMode = False
        With .Range("A3:EB" & .Cells(Rows.Count, "W").End(xlUp).Row)

            .AutoFilter
            .AutoFilter Field:=98, Criteria1:=">9"
            .AutoFilter Field:=99, Criteria1:=">2014"
            .AutoFilter Field:=23, Criteria1:=">60%", _
                        Operator:=xlAnd, Criteria2:="<90%"
            cnt = Application.Aggregate(2, 7, .Columns(23))
            Debug.Print cnt
        End With
        If .AutoFilterMode Then .AutoFilterMode = False
    End With

Ваша вторая команда фильтра для поля 23 отменяла первую. Тем не менее, вы все равно должны проверить достоверность ваших данных. Мне кажется, что если бы нижняя граница процентного фильтра была отменена, вы бы получили больше записей, чем хотели, а не вообще ничего.

autofilter_between_pcts_before
                       Пример данных до применения фильтра «между процентами»

autofilter_between_pcts_after                       Пример данных после применения фильтра «между процентами»

person Community    schedule 18.03.2016