, как писал @ Gary's, код будет зацикливаться в обратном направлении, я пытался yr code (updated) и my, чтобы удалить каждую строку в строку диапазона 25K, это результат: mycode: 00: 00: 03: 123 joecode:00: 00: 14: 1214
Оба кода:
Sub testJoe()
Dim startTime As Single
Dim i As Long
startTime = Time()
For i = Range("C2").End(xlDown).Row To 2 Step -1
If Cells(i, 3) = 3 Then Rows(i).EntireRow.Delete
Next
Debug.Print Format(Time() - startTime, "HH:nn:ss:ms")
End Sub
Sub mytest()
Dim startTime As Single, rang As Range, sh As Worksheet
startTime = Time()
Set sh = ActiveSheet
sh.UsedRange.AutoFilter Field:=3, _
Criteria1:="=3", _
VisibleDropDown:=False
Set rang = sh.UsedRange.Offset(1, 0)
Set rang = rang.Resize(rang.Rows.Count - 1)
Set rang = rang.SpecialCells(xlCellTypeVisible)
rang.EntireRow.Delete
Selection.AutoFilter
Debug.Print Format(Time() - startTime, "HH:nn:ss:ms")
End Sub