Excel VBA Макросы. Удалить строки, у которых в заданном столбце пусто, с помощью макроса.

Автор Посетитель, 10 августа 2021, 06:30

Посетитель

На листе есть таблица. В первой строке шапка, данные начинаются со строки 2.
Нужно удалить строки, у которых в столбце B пустые ячейки.

Администратор

Макрос

Sub Макрос()

    Dim lr As Long, i As Long
   
   
    ' Отключение монитора, чтобы ускорить макрос.
        ' Можено ещё отключить формулы, если их много и если макрос медленно работает.
    Application.ScreenUpdating = False
   
    '1. Сброс автофильтра, чтобы отобразить скрытые строки.
        ' Это нужно для поиска последней строки, т.к. команда End не видит скрытые строки.
    If ActiveSheet.AutoFilterMode = True Then
        ActiveSheet.AutoFilter.ShowAllData
    End If
   
    '2. Поиск последней строки по столбцу A.
    lr = Cells(Rows.Count, "A").End(xlUp).Row
   
    '3. Удаление строк, у которых пусто в столбце B.
    For i = lr To 2 Step -1
        If Cells(i, "B").Value = "" Then
            Rows(i).Delete
        End If
    Next i
   
    '4. Сообщение.
    Application.ScreenUpdating = True
    MsgBox "Готово.", vbInformation

End Sub
[свернуть]