Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 运行时错误下标超出范围_Vba_Excel - Fatal编程技术网

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”)