运行时错误下标超出范围

基本上我试图从一个工作簿复制到另一个工作表。 虽然这样做我得到一个称为下标超出范围的错误。

Sub cp() Dim ws As Worksheet, wb As Workbook 'Target workbook Set wb = Workbooks("Desktop:\Book2.xlsb") 'Source workbook For Each ws In Workbooks("Desktop:\Book1.xlsb") ws.copy After:=wb.Sheets(wb.Sheets.Count) Next ws End Sub 

如果文件已经打开,那么只需要:

 Set wb = Workbooks("Book2.xlsb") 

同样,

 For each ws in Workbooks("Book1.xlsb").Worksheets 

还要注意,你需要在上面的语句中指出.Worksheets集合。 For each ws in Workbooks("Book1.xlsb")都不起作用,即使工作簿包含工作表,也没有像这样的暗示迭代,您需要指定要循环的集合。