Timuchin, для быстродействия строки нужно удалять не построчно, а разом.
Загоняем строки в массив, и потом разом грохаем.
Загоняем строки в массив, и потом разом грохаем.
Код |
---|
Sub DeleteFilteredRows() Dim rr As Range LastRow = ActiveSheet.UsedRange.Rows.Count For r = 1 To LastRow If Rows(r).Hidden Then If rr Is Nothing Then Set rr = Cells(r, 1) Else Set rr = Union(rr, Cells(r, 1)) End If End If Next r If Not rr Is Nothing Then rr.EntireRow.Delete On Error Resume Next ActiveSheet.ShowAllData On Error GoTo 0 End Sub |