我正在尝试识别显示数字68700的所有行,然后在下面添加一行以及复制所述行,然后粘贴它的副本。
它在每行中添加这一行直到500.我确信有一种简单的方法可以解决这个问题,但我对VBA不够熟练,无法弄明白。
For Z = 2 To 500
If Range("E" & Z) = 68700 Then
Rows(Z + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows(Z).Copy
Rows(Z + 1).PasteSpecial xlPasteValues
End If
Next Z
答案 0 :(得分:3)
使用反向循环,因为在添加每一行后,您的范围将超出第500行。
尝试此操作(未经测试)
Sub Sample()
Dim ws As Worksheet
Dim i As Long
'~~> Change this to the relevant sheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
For i = 500 To 2 Step -1
If .Range("E" & i) = 68700 Then
.Rows(i + 1).Insert Shift:=xlDown
.Rows(i).Copy .Rows(i + 1)
End If
Next i
End With
End Sub