Вставить строку каждые X строк в Excel - PullRequest
4 голосов
/ 16 февраля 2011

У меня длинный список кодов, таких как 008.45 и т. Д., Для их объяснения потребуется несколько строк текста.У меня есть список кодов, и я хотел бы знать, как я могу автоматически вставить строку, скажем, в каждую пятую строку.Пример ниже

1          
2
3
4
5
6
7
8
9
10...
100

Каждые пять строк я хотел бы вставить определенное количество выбранных мной строк.Как я могу это сделать?Спасибо

Ответы [ 7 ]

6 голосов
/ 16 февраля 2011

Тест с диапазоном от строки 1 до строки 100.

Sub InsertRows()
For i = Sheet1.UsedRange.Rows.Count To 1 Step -5
    For j = 0 To 4
        Sheet1.Rows(i).Insert
    Next
Next
End Sub
1 голос
/ 28 сентября 2017

Это прекрасно сработало для меня:

Sub add_rows_n()

t = 6
Do Until Cells(t, "A") = ""
Rows(t).Insert
t = t + 6
Loop

End Sub
1 голос
/ 16 февраля 2011

Вам необходимо использовать цикл, как показано ниже:

for i=1 to 100 step 1
  if i mod 5 = 0 then
     // Insert the rows
  end if
next i
0 голосов
/ 21 августа 2018

Вот код, с которым я столкнулся.Обратите внимание, что цикл FOR фактически запускается в обратном направлении от конца UsedRangeМод 5 вставляет ряд каждые 5 строк.

For i = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
    If (i - 1) Mod 5 = 0 Then
        ActiveSheet.Rows(i).Insert Shift:=xlDown
    End If
Next
0 голосов
/ 20 июля 2017

Например, если мне нужно 5 моих записей между строками данных, я бы использовал Mod 6, однако вам нужно разрешить эти новые строки, так как они влияют на счетчик используемых диапазонов!Для этого вам нужно добавить количество строк, которые будут вставлены в длину цикла (например, абсолютное значение (numberOfRows / YourModValue)).

Код для этого:

Sub InsertRows()
For i = 1 To Sheet1.UsedRange.Rows.Count + Abs(Sheet1.UsedRange.Rows.Count / 6) Step 1
    If i Mod 6 = 0 Then
        Sheet1.Rows(i).Insert
        Cells(i, 1).Value = "Whatever data you want in your new separator cell"
    End If
Next i
End Sub
0 голосов
/ 31 июля 2012

Или вы можете использовать функцию модуля следующим образом:

=IF(MOD(ROW()-1,7),"",A1)

в B1, где A1 - первый номер вашего набора данных.

NB. Измените 7 на n , чтобы получить каждую n строку.

0 голосов
/ 16 февраля 2011

Чтобы вставить строку в строку myRowNumber , ваш код VBA будет выглядеть следующим образом:

    Rows(myRowNumber).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Вы можете включить это в ответ Энди.

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