Есть две колонки ("A","B") по 220 строк. Надо удалить строки целиком, если в колонке "B" стоит определенное значение - 0 или "Занято".
Я написал макрос, но при удалении первого попавшегося значения 0 или "Занято" строки смещаются, и на место, например, строки 2 становится строка 3, где тоже значение "0". Но макрос уже переходит к следующей строке. Следовательно макрос приходится прогонять несколько раз чтобы удалить все.
Как сделать так, чтобы все строки удалялись за один прогон?
Перед удалением строк нужно отключить обновление монитора, это очень существенно ускоряет макрос.
Также можно отключить пересчёт формул, если много формул и макрос медленно работает.
Макрос
Sub DeleteRows()
Dim i As Long
Application.ScreenUpdating = False
For i = 220 To 2 Step -1
If Cells(i, "B").Value = 0 Or Cells(i, "B").Value = "Занято" Then
Rows(i).Delete
End If
Next i
End Sub
Сработало. Благодарю за помощь!