我正在做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
出现错误“需要对象”。
这是什么意思?
顺便说一句,我是如何在工作表之间复制和粘贴数据的?
答案 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")