将整行复制到另一个Excel工作表,然后仅删除行

时间:2016-07-06 17:25:25

标签: excel vba excel-vba

所以我的主要工作表有一堆列,最后一列包含一个显示状态为“正在处理”,“暂停”,“已下订单”,“在公司”,“已发货”或“取消”取决于某些条件。我正在尝试找到一种方法来添加一个按钮,该按钮将已取消的按钮复制到名为cancelled的工作表中,并发送到名为“已发货订单”的工作表。

我的问题是我需要将行从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

1 个答案:

答案 0 :(得分: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