粘贴另一个工作簿excel vba中的数据,错误:Worksheet类的粘贴方法失败

时间:2017-04-08 10:28:33

标签: excel vba

我试图将一组数据从工作簿复制到另一个工作簿,让我们说我要将数据从A书复制到B册。首先,我去预订复制列表,然后转到Book B以在copydata宏下运行(我想将数据粘贴到新工作表上,然后再回到第B册中的上一页。)

Sub copydata()

Dim lstviewpg As String
lstviewpg = ActiveSheet.Name
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "newsheet"
Sheets("newsheet").Activate
ActiveSheet.Paste
Sheets(lstviewpg).Activate

End Sub

由于Worksheet类的Paste方法失败,第6行的宏失败。任何人都知道如何解决它?

ActiveSheet.Paste

2 个答案:

答案 0 :(得分:1)

如果剪贴板上没有任何内容,即剪贴板为空,也会生成Worksheet类的粘贴方法失败错误。 因此,要确认剪贴板不为空,请右键单击工作表上的任何单元格,如果粘贴为灰色,则表示剪贴板为空。

答案 1 :(得分:0)

您必须使用PasteSpecial()

此外,您可以简化一点:

Sub copydata()

    Dim lstviewpg As String
    lstviewpg = ActiveSheet.Name

    With Sheets.Add(After:=Sheets(Sheets.Count)) '<--| add a new sheet and reference it
        .Name = "newsheet" '<--| set the name of referenced sheet
        .PasteSpecial '<--| paste data
    End With
    Sheets(lstviewpg).Activate

End Sub