Excel 将数据从一个工作簿复制到另一个“需要对象”

Excel 将数据从一个工作簿复制到另一个“需要对象”,excel,vba,object,paste,Excel,Vba,Object,Paste,我目前正在做一个VBA项目,它需要从一个工作簿复制到另一个工作簿,WBookPst是我第一次打开使用的工作簿,而WBookCopy是我根据链接打开的工作簿,我在第一个工作簿的Sheet1中列出了文件中的所有.xslt格式。这是我的密码: Sub SortFiles() 'Set up your variables and turn off screen updating. 'Dim iCounter As Integer Application.ScreenUpdati

我目前正在做一个VBA项目,它需要从一个工作簿复制到另一个工作簿,WBookPst是我第一次打开使用的工作簿,而WBookCopy是我根据链接打开的工作簿,我在第一个工作簿的Sheet1中列出了文件中的所有.xslt格式。这是我的密码:

Sub SortFiles()
    'Set up your variables and turn off screen updating.
    'Dim iCounter As Integer
     Application.ScreenUpdating = False

    'Sort the rows based on the data in column C
    Columns("A:C").Sort key1:=Range("C2"), _
    order1:=xlDescending, Header:=xlYes

    Application.ScreenUpdating = True

    Dim WBookCopy As Workbook
    Dim WBookPst As Workbook
    Dim filePath As String
    Dim sheetName As String
    Dim sheetCopy As Worksheet
    Dim sheetPate As Worksheet
    Dim rngCopy As Range
    Dim rngPst As Range

    filePath = Range("B2").Value
    Set WBookCopy = Workbooks.Open(filePath)

    Columns(30).Insert
    For i = 1 To Sheets.count
        Cells(i, 30) = Sheets(i).Name
    Next i

    sheetName = Range("AD1").Value
    Set sheetCopy = WBookCopy.Worksheets(sheetName)
    Set rngCopy = sheetCopy.Range("A:AA").Copy

    Set WBookPst = ThisWorkbook
    Set sheetPaste = WBookPst.Worksheets("Sheet1").Activate
    Set rngCopy = sheetPaste.Range("A:AA").Select
    ActiveSheet.Paste

End Sub 
在设置rngCopy=sheetCopy.RangeA:AA.Copy时,需要错误对象

这是什么意思?
顺便问一下,我如何在工作表之间复制和粘贴数据正确吗?

问题在于rngCopy的类型是range,您不能将其设置为方法副本。删除。副本,您应该会没事的。您也不需要将工作表输出范围设置为变量。您可以只做一行,上面写着WBookCopy.SheetName.RangeA:AA.copy,然后再做另一行粘贴。

正如@Wyatt提到的那样-您的复制粘贴语法不正确

以下是两种方法:

Worksheets("Sheet1").Range("A:AA").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial xlPasteAll


谢谢它确实删除了错误,但我不知道如何将该值粘贴到我第一次打开的工作簿中。我上面的编码正确吗?@paul的答案回答了您关于如何粘贴数据的问题。不管答案是什么,都可以随意标记appropriate@wyatt解决了错误!谢谢保罗的帮助
Worksheets("Sheet1").Range("A:AA").Copy Destination:=Worksheets("Sheet2").Range("A1")