Автофильтр не возвращает строку: пропустите следующие шаги - PullRequest
2 голосов
/ 21 июня 2020

Я создаю отчет об исключениях, в котором выделяются отсутствующие / неточные данные после применения серии автоматических фильтров. Проблема: 1) когда один из автофильтров не возвращает результат / нет строк, цветовой код применяет цвета ко всем ячейкам в диапазоне данных. 2) в отчете через несколько недель могут быть результаты / строки, на какой-то недельный автоматический фильтр не будет результатов / строк

Требуется руководство: глядя на код ниже, может ли кто-нибудь сказать мне, есть ли автофильтр в BBB название не возвращается подряд, как я могу пропустить раскраску / выделение? Скорее перейдите к CCC названному фильтру.

With ActiveSheet.ListObjects("Table_query__57")
          .Range.AutoFilter Field:=a, Criteria1:=Array("BCH", "HS", "L"), 
           Operator:=xlFilterValues
                
       'BBB 
          .Range.AutoFilter Field:=i, Criteria1:="Approved"

'if autofilter returns no result, i want to skip next this function
          .ListColumns(p).DataBodyRange.Interior.Color = RGB(255, 0, 0)
    
'start function here
          .Range.AutoFilter Field:=i  

1 Ответ

0 голосов
/ 21 июня 2020

Подсчитайте количество строк, которые вы получите после применения фильтра. Если результат равен 1, игнорируйте.

Предположим, фильтр находится в столбце B

Dim Visible_cells As Long
ActiveSheet.Range("B4:B1000").AutoFilter Field:=1, Criteria1:="Your condition", Operator:=xlAnd
Visible_cells = Range("B4:B1000").SpecialCells(xlCellTypeVisible).Rows.Count

If Visible_cells > 1 Then ' code will continue only if the visible cells is more than 1
    ' Continue your code
Else
End If
...