从一个工作簿复制到打开工作簿

我试图从一个封闭的工作簿中复制一个对象到当前打开的工作簿,我试验的蜜蜂的代码是:

Sub test() Dim WB1 As Workbook Dim WBDest As Workbook Set WBDest = Workbooks(ActiveWorkbook.Path & "\" & ActiveWorkbook.Name) 'Open up your first workbook, copy data Set WB1 = Workbooks.Open("path to the folder\testbook.xlsx") WB1.Sheets("Sheet1").Range("A1:F12").Copy 'paste in second workbook WBDest.Sheets("Sheet1").Range("A1").PasteSpecial 'Close first workbook WB1.Close savechanges:=False End Sub 

我不断收到一个“下标超出范围”的错误,如果我删除了WBDest信息并使用了activeworkbook,它将复制对象并将其粘贴到同一工作簿中,因为它是当前的工作簿。

有人可以请指导我,并帮助我弄清楚我做错了什么。

谢谢。

正如AndyG所说,它应该是WBDest = Workbooks.Open(..)。 那么replace是:

 Sub test() Dim WB1 As Workbook Dim WBDest As Workbook Set WBDest = Workbooks.Open(ActiveWorkbook.Path & "\" & ActiveWorkbook.Name) 'Open up your first workbook, copy data Set WB1 = Workbooks.Open("path to the folder\testbook.xlsx") WB1.Sheets("Sheet1").Range("A1:A7").Copy 'paste in second workbook WBDest.Sheets("Sheet1").Range("A1:A7").PasteSpecial 'Close first workbook WB1.Close savechanges:=False End Sub 

请注意,在第5行中,如果工作簿已经按照您的build议打开,那么您可以轻松地编写WBDest = ActiveWorkbook