2016-09-03 41 views
0

我試圖確定顯示數字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 

回答

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