Max*_*234 2 excel vba excel-vba
可能重复:
在excel中每X行插入一行
我有一大堆数据(假设它从B5到J500,让我们说这个范围被命名为rngOutput).我试图浏览这些数据,每x行添加2个空行,其中x是用户指定的数字.例如,如果x为10,则应插入每10行2个新行.从概念上讲,这是应该工作的代码:
For i = 1 to Number of rows in rngOutput
If i mod x = 0 Then
Insert 2 Rows
End If
Next i
Run Code Online (Sandbox Code Playgroud)
但是,当您插入2个新行时,行数会更改并且公式会混乱(即它在前10行之后添加2行,然后在接下来的8行之后再添加2行(因为它会计算这2个新行)添加为实际行)然后在接下来的6行之后添加另外2行等.
我试图找到一种方法来完成每x行数干净地添加2个新行,以避免上述问题.
感谢您的帮助,如果您需要进一步说明,请告诉我们!
这就像克里斯唯一的充实.插入或删除行时,您必须从底部开始处理:
Sub InsertXRowsEveryYRows_WithMeaningfulVariableNames()
Dim NumRowsToInsert As Long
Dim RowIncrement As Long
Dim ws As Excel.Worksheet
Dim LastRow As Long
Dim LastEvenlyDivisibleRow
Dim i As Long
NumRowsToInsert = 2 'any number greater than 0
RowIncrement = 10 'ditto
Set ws = ActiveSheet
With ws
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
LastEvenlyDivisibleRow = Int(LastRow / RowIncrement) * RowIncrement
If LastEvenlyDivisibleRow = 0 Then
Exit Sub
End If
Application.ScreenUpdating = False
For i = LastEvenlyDivisibleRow To 1 Step -RowIncrement
.Range(i & ":" & i + (NumRowsToInsert - 1)).Insert xlShiftDown
Next i
End With
Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)