2016-07-11 3 views
0

こんにちは私は次のコードを持っていますが、前のシートと同じ順序を保つために下から上に実行する必要がありますが、その方法を理解することはできません。私が試したすべてがコードを破るようだ。ありがとう!ループを下から上に実行する

Sub Insert() 
    Dim dc As Range 
    With Sheets("All") 
     For Each dc In Intersect(.Range("D:D"), .UsedRange) 
      If dc.Value2 = 780101 Then 
       dc.Resize(2, 1).EntireRow.Copy 
       Sheets("780101").Rows(6).Insert Shift:=xlDown 
      End If 
     Next 
    End With 
End Sub 
+0

最も簡単な方法はforループとlastRowから1 step -1に変換することです。 – sous2817

+0

私はVBAにちょっと新しいですが、どうすればいいですか? – lola

答えて

0

私は最も簡単な方法は、最後の行を見つけてそこから処理することだと思います。

Sub test() 
Dim lr As Long, _ 
    rowCounter As Long 

    With Sheets("All") 
     lr = .Range("D" & Rows.Count).End(xlUp).Row 
     For rowCounter = lr To 2 Step -1 
      If .Cells(rowCounter, 4).Value = 780101 Then 
       .Cells(rowCounter, 4).Resize(2, 1).EntireRow.Copy 
       Sheets("780101").Rows(6).Insert Shift:=xlDown 
      End If 
     Next rowCounter 
    End With 
End Sub 
関連する問題