Завершение макроса, когда автофильтр не имеет совпадений

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

Проблема, с которой я сталкиваюсь, заключается в том, что после того, как он отфильтровал первые две переменные, если нет совпадений для третьей (значение для сопоставления равно ü), то он отменяет все и просто копирует все необработанные данные с листа, как если бы фильтры не были применяемый.

    Sheets("ChangeLog").Select 
ActiveSheet.Range("$A$2:$AP$2040").AutoFilter Field:=36, Criteria1:="4"
ActiveSheet.Range("$A$2:$AP$2040").AutoFilter Field:=35, Criteria1:="2020"
ActiveSheet.Range("$A$2:$AP$2040").AutoFilter Field:=15, Criteria1:="ü"
Range("A3:A2041").Select
Selection.Copy
Sheets("!PIPELINE_TEMPLATE").Select
Range("N77").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Затем он продолжает это для различных критериев фильтрации, но все они следуют одному и тому же шаблону. В идеале я хочу, чтобы сабвуфер заканчивался, если он не может найти "ü"

Любая помощь будет принята с благодарностью :)

Отметка


person Mark Patterson    schedule 22.09.2014    source источник
comment
Это работает, если вы включаете заголовки столбцов в диапазон для копирования, то есть Range("A2:A2041").Select. Но я думаю, вы не хотите этого делать (?).   -  person Simon Sletting Bojer    schedule 22.09.2014


Ответы (1)


Спасибо Саймон,

Нам действительно удалось выяснить это, используя IF после автофильтров.

    vRows = Sheets(shtChangeLog).Cells(Rows.Count, 1).End(xlUp).Row
    If vRows > 2 Then
person Mark Patterson    schedule 24.09.2014