Вставьте дополнительную строку в al oop, если удовлетворено указанное c требование - PullRequest
0 голосов
/ 04 мая 2020

Совершенно новый для программирования в целом и особенно в VBA. Я пытаюсь создать код, который добавляет пустую строку, если в ячейке выполняется требование specefi c, т.е. если ячейка в столбце B пуста. Мои данные различаются по размеру, поэтому я не могу определить определенный c диапазон, я полагаю.

Данные выглядят так:

enter image description here

Пока мой код выглядит следующим образом, но он добавляет пустые строки в верхнюю часть, как только столбец b пуст.

For i = 1 To k
  If out.Range("B16").Cells(i, 1) = "" Then
   out.Rows(i).Insert shift:=xlShiftUp
End If
Next i 

Что мой код в основном делает, так это добавляет несколько строк вверху атм, поэтому он перемещает таблицу на 6-7 строк вниз.

1 Ответ

0 голосов
/ 04 мая 2020

Предполагая, что данные таблицы такие:
enter image description here

Необходимо вставить всю строку, если ячейка в столбце B пуста.
Таким образом, таблица становится чем-то вот так:

enter image description here

Код:

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. в левом или правом конце этой пустой ячейки есть значение.
код остановится, если в левом конце и в конце справа от этой пустой ячейки нет значения

Вот если я не ошибаюсь, чтобы понять, что вы имеете в виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...