我有很长的代码列表,例如008.45等,需要多行文字来解释它们。我有代码列表,我想知道如何自动插入每行,比如第五行。以下示例
1
2
3
4
5
6
7
8
9
10...
100
每五行我想插入一定数量的行选择。我怎样才能做到这一点?感谢
答案 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