Удаление по двойному условию + перебор по листам - VBA

Формулировка задачи:

Доброго всем дня! Нашел на просторах интернета макрос:
Sub по_2условию()
    Dim ra As Range, delra As Range, cell As Range
    Set ra = Range("B4:B100")
 
    Set ra = Range(ra, Cells(Rows.Count, ra.Column).End(xlUp))
 
    Application.ScreenUpdating = False
 
    For Each cell In ra.Cells
        If (cell <> "") And (cell.Offset(1, 1) = "") Then
           
            If delra Is Nothing Then Set delra = cell Else Set delra = Union(delra, cell)
        End If
    Next cell
 
    If Not delra Is Nothing Then delra.EntireRow.Delete
End Sub
Собственно макрос удаляет строку по двойному условию т.е. если ячейка B не пустая соседняя нижняя пустая, то срока удаляется. Сам макрос в этой части работает прекрасно, но пытаюсь сделать что бы он "бегал" по листам начиная со второго и ничего не выходит. Добавлял:
For i = 2 To Sheets.Count
 Sheets(i).Activate
Выдает ошибку. Может, кто, подсказать, как исправить макрос, что бы он начал "бегать" по листам. Заранее спасибо за помощь.

Код к задаче: «Удаление по двойному условию + перебор по листам - VBA»

textual
If Not delra Is Nothing Then delra.EntireRow.Delete
        Set delra = Nothing

6   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ