Vba 运行时错误下标超出范围
基本上,我正在尝试将工作表从一个工作簿复制到另一个工作簿。在执行此操作时,我得到一个名为“下标超出范围”的错误Vba 运行时错误下标超出范围,vba,excel,Vba,Excel,基本上,我正在尝试将工作表从一个工作簿复制到另一个工作簿。在执行此操作时,我得到一个名为“下标超出范围”的错误 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(
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
集合对于工作簿中的每个ws(“Book1.xlsb”)
将不起作用,即使工作簿包含工作表,也没有类似的隐含迭代,您需要指定要循环的集合。哪一行引发错误<代码>设置wb=…?下标超出范围表示您正在引用工作簿集合中不存在的工作簿(按名称)。是,它显示设置wb中的错误。但是工作簿在我的桌面文件夹中需要打开该书,或者代码找不到它。如果它已打开,则不使用路径,只需Set wb=Workbooks(“Book2.xlsb”)