2016-02-18 24 views
1

我有這段代碼將任何東西移動到另一個工作表,它的工作原理,除了它跳過行,我必須運行幾次,讓所有的東西移動,任何幫助將大大讚賞 感謝我的宏是runnig,但跳過行

Sub MoveLS() 
    Dim h As Variant 
    Dim endrow As Integer 
    Dim SB As Worksheet, ORDERED As Worksheet 

    Set SB = ActiveWorkbook.Sheets("SB") 
    Set ORDERED = ActiveWorkbook.Sheets("ORDERED") 


    endrow = SB.Range("A" & SB.Rows.Count).End(xlUp).Row 


    For h = 2 To endrow 

     If SB.Cells(h, "H").Value = "Ordered" Then 
      SB.Cells(h, "H").EntireRow.Cut Destination:=ORDERED.Range("A" & ORDERED.Rows.Count).End(xlUp).Offset(1) 
      SB.Cells(h, "H").EntireRow.Delete 


     End If 
    Next 
End Sub 

回答

1

當你遍歷你跳過一些行。

,而不是從下往上刪除就像這樣:

For h = endrow to 2 Step -1 
    If SB.Cells(h, "H").Value = "Ordered" Then 
     SB.Cells(h, "H").EntireRow.Cut Destination:=ORDERED.Range("A" & ORDERED.Rows.Count).End(xlUp).Offset(1) 
     SB.Cells(h, "H").EntireRow.Delete 
    End If 
Next 
+0

這工作,謝謝! – sam

+0

當然,男人。 – bernie

0

的問題是,每次切一排的時候,你也跳過下一行。

E.g.

  • 你的指數爲5。
  • 一行5匹配您的條件
  • 你砍5行和將其粘貼到另一個工作表
    • 一行6 becames新行5
    • 指數移至6
    • 行6(先前的行7)被評估並且前面的行6被跳過。

嘗試複製行,而不是切斷它的!

+0

我需要削減,因爲我不希望他們在網頁上,但感謝爲什麼它的發生的解釋 – sam