我有一个奇怪的问题,我无法按照以下子程序运行:
Sub Copy_Workbook()
Workbooks("book1").Sheets("Sheet1").Range("a1").Copy _ Workbooks("book2").Sheets(2).Range("a2")
End Sub
我两个都擅长xlsm,
,并且都在同一实例中打开。
我确实收到了问题Out of range
。
如果有人对它为什么无法工作有任何想法,可以请指教,谢谢。
答案 0 :(得分:2)
以下子项将起作用。
Sub Copy_Workbook()
Workbooks("book1").Sheets("Sheet1").Range("a1").Copy Workbooks("book2").Sheets(2).Range("a2")
End Sub
您必须确认:
两个工作簿已打开,Book2
至少有两(两)张工作表。检查工作表名称的所有拼写是否正确。
答案 1 :(得分:0)
如果您的工作簿尚未保存,则无需文件扩展名即可进行引用。
保存后,您必须包含扩展名。
您可以通过创建一个新的工作簿,然后转到VBA IDE中的“即时”窗格并键入?workbooks("Book1").name
来确认。它将返回“ Book1”。
以.xlsm格式保存工作簿。返回到VBA IDE即时窗格,然后重新执行?workbooks("Book1").name
。它将引发“下标超出范围”错误。
将代码更改为:
Sub Copy_Workbook()
Workbooks("book1.xlsm").Sheets("Sheet1").Range("a1").Copy _
Workbooks("book2.xlsm").Sheets(2).Range("a2")
End Sub
会起作用!