2016-07-06 5 views
0

したがって、メインワークシートには一連の列があり、最後の列には「処理中」、「保留中」、特定の条件に応じて、「発注」、「会社で」、「出荷」、または「キャンセル」することができます。キャンセルされたシートをキャンセルされたシートにコピーするボタンを追加する方法を見つけようとしています。出荷された注文と呼ばれるシートに出荷されました。行全体を別のExcelワークシートにコピーし、行の一部のみを削除します

私の問題は、AからVまでの行をコピーし、キャンセルされたワークシートの次の空白行の値だけを貼り付けてから、メインシートに戻ってセルBの内容をクリアする必要があるということです。その行の他のセルには数式を入れておく必要があり、BからRまではステータスが変更されるので、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

@ヴィクトリア - つかみ。私は再読した。うれしいことがあなたのために働いた。今後の他の人々が利益を得ることができるように、回答としてマークしてください。 –

関連する問題