Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Excel 在VBA中引用其他工作簿/工作表时,为什么下标超出范围错误9?_Excel_Vba - Fatal编程技术网

Excel 在VBA中引用其他工作簿/工作表时,为什么下标超出范围错误9?

Excel 在VBA中引用其他工作簿/工作表时,为什么下标超出范围错误9?,excel,vba,Excel,Vba,我有一个宏(在主工作簿中),它使用.value2从另一个工作簿/工作表获取数据 我在代码中尝试了不同的更改。我仔细检查了两本工作簿是否都打开了。但是,我一直使下标超出范围(错误9) 您可以通过工作表的代码名引用工作表,但它的格式不同,必须位于本工作簿中。一个缺点是,您不能通过代码名引用另一工作簿中的工作表工作表(“PQ总计US”)。激活与PQTotalUS。激活。如果您的目标是缩短代码,而不必重复较长的名称,那么另一个选项是执行以下操作: Dim wb1 as Workbook Dim ws1

我有一个宏(在主工作簿中),它使用
.value2
从另一个工作簿/工作表获取数据

我在代码中尝试了不同的更改。我仔细检查了两本工作簿是否都打开了。但是,我一直使
下标超出范围(错误9)


您可以通过工作表的代码名引用工作表,但它的格式不同,必须位于本工作簿中。一个缺点是,您不能通过代码名引用另一工作簿中的工作表<代码>工作表(“PQ总计US”)。激活与
PQTotalUS。激活
。如果您的目标是缩短代码,而不必重复较长的名称,那么另一个选项是执行以下操作:

Dim wb1 as Workbook
Dim ws1 as Worksheet
Set wb1 = Workbooks("Power Query Meijer_Walmart_Total US xAOC.xlsm")
Set ws1 = wb1.Worksheets("PQ Total US")

With ws1
     'Do something
End with

仔细检查工作簿和工作表的拼写以及目标工作簿是否已打开。工作簿“Power Query Meijer_Walmart_Total US xAOC.xlsm”是否已打开?@ScottCraner I添加了工作簿/工作表的打印屏幕。一切都是开放的,拼写正确。。除非我完全失踪了something@FaneDuru我添加了一个打印屏幕:是的,“Power Query-Meijer_Walmart_Total US xAOC.xlsm”在您的屏幕截图中打开,
PQ Total US
中有空格。代码中没有。代码名和工作表名称之间的差异。
Dim wb1 as Workbook
Dim ws1 as Worksheet
Set wb1 = Workbooks("Power Query Meijer_Walmart_Total US xAOC.xlsm")
Set ws1 = wb1.Worksheets("PQ Total US")

With ws1
     'Do something
End with