На листе есть таблица. В первой строке шапка, данные начинаются со строки 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