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