VBA:Range类的PasteSpecial方法失败

时间:2016-12-07 21:12:55

标签: vba excel-vba excel

我使用它将订单从新订单页面移动到之前的订单页面,但是当我尝试运行它时,我收到标题错误。我看了几个不同的地方试图让它工作,我看到他们应该工作,但我的不是。

Sheets("New_Orders").Range("B3:E29").Cut

Sheets("Previous_Orders").Range("B31").PasteSpecial Paste:=xlPasteValues

这是更多的代码,应该做同样的事情,无法正常工作

Sheets("New_Orders").Select
Range("B3:E29").Select
Selection.Cut
Sheets("Previous_Orders").Select
Range("B:B").Find("").Select
ActiveSheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

我也尝试过Selection.Copy。它给出了同样的错误

1 个答案:

答案 0 :(得分:3)

如上面评论中所述,您只能在使用剪切时粘贴所有内容。如果只需要值,则直接指定值,然后清除范围。

Sub foo()
Dim rng As Range
Dim lastRow As Long

Set rng = Sheets("New_Orders").Range("B3:E29")
With Sheets("Previous_Orders")
    lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
    .Cells(lastRow, 2).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value
End With
rng.Clear
End Sub