Предполагая, что данные таблицы такие:
Необходимо вставить всю строку, если ячейка в столбце B пуста.
Таким образом, таблица становится чем-то вот так:
Код:
Sub test123()
Set x = Range("B16")
Do Until x.Offset(1, 0).End(xlToRight).Value = "" And x.Offset(1, 0).End(xlToLeft).Value = ""
If x.Value = "" Then
If x.End(xlToRight).Value <> "" Or x.End(xlToLeft).Value <> "" Then
x.EntireRow.Insert
'x.Offset(-1, 0).Interior.Color = vbGreen
End If
End If
Set x = x.Offset(1, 0)
Loop
End Sub
Условие для вставки всей строки:
1. если в столбце B есть пустая ячейка
2. в левом или правом конце этой пустой ячейки есть значение.
код остановится, если в левом конце и в конце справа от этой пустой ячейки нет значения
Вот если я не ошибаюсь, чтобы понять, что вы имеете в виду.