2016-09-03 15 views
0

番号68700が表示されているすべての行を特定し、その行をコピーしてから、その行をコピーしてからそれ。条件 - ループがループ範囲全体を通して最後の条件をコピーした場合

500まで、この行を1行ごとに追加しています。これには簡単な方法があると確信していますが、それを理解するには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

すべての行が追加された後、あなたの範囲は

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 
未テスト)これを試してみてください行を超えて500

をシフトすることになるので、逆ループを使用します