在excel中每X行插入一行

时间:2011-02-16 13:43:33

标签: excel excel-vba excel-2007 vba

我有很长的代码列表,例如008.45等,需要多行文字来解释它们。我有代码列表,我想知道如何自动插入每行,比如第五行。以下示例

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

每五行我想插入一定数量的行选择。我怎样才能做到这一点?感谢

7 个答案:

答案 0 :(得分:6)

使用第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 :(得分:1)

您需要使用如下循环:

for i=1 to 100 step 1
  if i mod 5 = 0 then
     // Insert the rows
  end if
next i

答案 2 :(得分:1)

这对我很有用:

Sub add_rows_n()

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

End Sub

答案 3 :(得分:0)

要在 myRowNumber 行插入一行,您的VBA代码将如下所示:

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

你可以将其纳入安迪的答案中。

答案 4 :(得分:0)

或者您可以像这样使用模数函数:

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

,其中A1是数据集的第一个数字。

注意:将7更改为 n 以获取每个 n 行。

答案 5 :(得分:0)

例如,如果我想在我的数据行之间记录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

答案 6 :(得分:0)

这是我想到的代码。请注意,FOR循环实际上从UsedRange的末尾开始向后运行。 Mod 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