Автофильтр не принимает диапазон выше 100 строк для удаления отфильтрованных данных - PullRequest
0 голосов
/ 30 марта 2020

1. Применить фильтр

ws.Range("A3:W100").AutoFilter Field:=1, Criteria1:=Array("Exported", "Rejected", "MarkedRejected", "Completed"), Operator:=xlFilterValues

`

'2. Удалить строки

Application.DisplayAlerts = False
ws.Range("A3:W100").Offset(1, 0).SpecialCells(xlCellTypeVisible).delete
Application.DisplayAlerts = True

'3. Очистить фильтр

On Error Resume Next
ws.ShowAllData
On Error GoTo 0

1 Ответ

1 голос
/ 30 марта 2020

вы можете сделать свой код гибким, чтобы учитывать столько строк, сколько столбец A не пустые значения

With ws
    With .Range("A3:W" & .Cells(.Rows.Count, 1).End(xlUp).Row)
        .AutoFilter Field:=1, Criteria1:=Array("Exported", "Rejected", "MarkedRejected", "Completed"), Operator:=xlFilterValues
        Application.DisplayAlerts = False
        .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete
        Application.DisplayAlerts = True
    End With
    .AutoFilterMode = False
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...