Автофильтр - выяснить, пуст ли второй ряд видимых ячеек - PullRequest
1 голос
/ 24 января 2012

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

With ActiveSheet
    .AutoFilterMode = False
    With .Range("A1:F1")
        .AutoFilter Field:=1, Criteria1:="FirstTest"

        'See if first cell in second row is blank
        If (.Offset(2,1).SpecialCells(xlCellTypeVisible).Value = "") Then

            'if blank, change criteria
            .AutoFilter Field:=1, Criteria1:="SecondTest"
        End If

   End With
End With

Я знаю, что вы можете использовать VBA.Array для нескольких критериев, но это становится более сложным, мне просто нужно теперь узнать, как ссылаться на видимые данные во втором ряду.

Заранее благодарю за любую помощь.

1 Ответ

3 голосов
/ 24 января 2012

Попробуйте это:

With ActiveSheet
    .AutoFilterMode = False
    With .Range("A1:F1")
        .AutoFilter Field:=1, Criteria1:="FirstTest"

        'See if first cell in second row is blank
        If (.Parent.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count < 2) Then

            'if blank, change criteria
            .AutoFilter Field:=1, Criteria1:="SecondTest"
        End If

   End With
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...