我有一个包含242行的工作表。我想在每个现有行的下面创建一个新行。相反,我的代码在第一行下面创建了242行。我花了整个下午在Google和Stack Overflow上,尝试了各种想法,但都得到了同样的问题。下面是我的代码:
Function rws() As Integer
rws = (Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).row)
End Function
Sub InsRws()
Dim rng As Range
Dim row As Range
Set rng = Range("A1:A" & rws - 1)
For Each row In rng.Rows
Rows.Select
ActiveCell.Offset(1).EntireRow.Insert
Next row
End Sub发布于 2013-04-15 02:25:00
也许这会有帮助
Function rws() As Integer
rws = (Cells(rows.Count, "A").End(xlUp).Offset(1, 0).row)
End Function
Sub InsRws()
Dim rowCount As Integer
Dim i As Integer
rowCount = rws
For i = 1 To rowCount
Range("A" + CStr(2 * i - 1)).Select
ActiveCell.Offset(1).EntireRow.Insert
Next
End Sub发布于 2013-04-15 04:31:51
最简单的方法是递增而不是递减,就像这样
Sub InsertRows()
Dim rw As Long
With ActiveSheet
For rw = .Cells(.Rows.Count, 1).End(xlUp).Row To 2 Step -1
.Rows(rw).Insert
Next
End With
End Sub发布于 2013-04-15 02:34:51
如果你在for each循环debug.print row.address中调试,你会注意到当有一个insert时,你的rng会一直扩展。相反,您可以使用如下代码中的for循环。
Sub InsRws()
Dim lastRow As Long
lastRow = Sheets("Sheet1").Range("A65000").End(xlUp).Row
For i = 1 To lastRow
Range("A" & i * 2).EntireRow.Insert
Next
End Subhttps://stackoverflow.com/questions/16001937
复制相似问题