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

时间:2015-10-07 03:37:34

标签: excel vba object paste

我正在做VBA项目,需要从工作簿复制到另一个,WBookPst是我首先打开(使用)的工作簿,WBookCopy是我打开的工作簿基于通过将文件中的所有“.xslt”格式列入我的第一个工作簿的Sheet1中的链接。这是我的代码:

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 

Set rngCopy = sheetCopy.Range("A:AA").Copy出现错误“需要对象”。

这是什么意思?
顺便说一句,我是如何在工作表之间复制和粘贴数据的?

2 个答案:

答案 0 :(得分:0)

问题是rngCopy属于类型范围,您无法将其设置为等于方法(副本)。删除.Copy,你应该没事。您也不需要将工作表范围设置为变量。您可以只执行一行WBookCopy.SheetName.Range("A:AA").Copy,然后再粘贴另一行。

答案 1 :(得分:0)

正如@Wyatt所说 - 你的copy \ paste语法不正确

以下是两种方法:

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

Worksheets("Sheet1").Range("A:AA").Copy Destination:=Worksheets("Sheet2").Range("A1")