2016-07-06 58 views
0

所以我的主工作表有一堆列,最後一列包含一個公式,顯示「處理中」,「保持」狀態, 「訂單放置」,「在公司」,「運送」或「取消」取決於特定條件。我試圖找到一種方法來添加一個按鈕,將取消複製到名爲「已取消」的工作表中,並將其發送到名爲已發貨訂單的工作表。將整行復制到另一個excel工作表,然後刪除只有一部分行

我的問題是,我需要從A到V複製行,只粘貼取消工作表中下一個空行的值,然後返回主表並清除單元格B中的內容R因爲該行中的其他單元格具有必須保持放置的公式,並且一旦B到R被清除出狀態更改。

任何人都可以幫我解決這個問題嗎?這是迄今爲止我所擁有的一切,它複製了已取消的行,但我不知道該做什麼之後才能刪除正確的部分。

Private Sub AutoMove_Click() 
Set Rng = Range("V6:V201") 
again: 
For Each r In Rng 
If r.Value = "Cancelled" Then 
    r.EntireRow.Copy 
    Worksheets("Cancelled").Activate 
    erow = Worksheets("Cancelled").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 
    ActiveSheet.Cells(erow, 1).Activate 
    Selection.PasteSpecial xlPasteValues 
    Worksheets("Current LVA").Activate 
    End If 
Next 
End Sub 

回答

0

給這個鏡頭。請注意我如何聲明和分配所有對象(除了Rows.Count,因爲在這種情況下不重要)。

Private Sub AutoMove_Click() 

    Dim wsCurr As Worksheet, wsPaste As Worksheet 

    Set wsCurr = Worksheets("Current LVA") 

    Dim r As Range, Rng As Range 
    Set Rng = wsCurr.Range("V6:V201") 

    For Each r In Rng 

     Select Case r.Value 

      Case Is = "Cancelled", "Shipped" 

       r.EntireRow.Copy 
       Set wsPaste = Worksheets(r.Value) 
       wsPaste.Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues 
       'this line will clear contents of B:R for the row in the Current sheet 
       wsCurr.Range(ws.Cells(r.Row, 2), ws.Cells(r.Row, 18)).ClearContents 

     End Select 

    Next 

End Sub 
+0

謝謝!這工作完美!我如何獲得它也可以做同樣的事情發貨的東西(但發貨的工作表)?我試圖在第一個if語句之後糾正,但它似乎跳過了發貨的東西。它不會破壞任何東西,但只有取消的作品 – Victoria

+0

謝謝!發貨的部分是在我原來的問題:) – Victoria

+0

@維多利亞 - 陷阱。我重新閱讀。很高興爲你工作。請標記爲已回答,以便其他人可以受益。 –

相關問題