VBA运行时错误'9':下标超出范围;试图激活另一个工作簿

时间:2013-08-12 17:34:00

标签: excel-vba excel-2010 vba excel

我正在尝试在Excel 2010中创建一个VBA,它从另一个我不允许更改的电子表格中获取信息,并将其带入内置宏的电子表格。这是我的代码:

Sub BringUpWorkbook()
    Workbooks("RITE 1624.xls").Activate
End Sub

我有几本VBA书籍,访问了互联网上的几十个网站,包括那些在stackoverflow.com上的网站,并且找不到我收到运行时错误的原因。工作簿已经打开,我已经尝试添加标题后面的所有内容,我已经尝试删除.xls,我甚至在变量中完成了上述所有操作。有什么想法吗?

1 个答案:

答案 0 :(得分:7)

确保扩展名正确无误。如果它是您指定的excel-2010文件,则可能需要更新代码以反映“RITE 1624”文件的扩展名(例如,对于2010 Excel工作簿的.xlsx,对于2010 Excel宏启用的工作簿,.xlsm,或任何扩展名。

Sub BringUpWorkbook()
    Workbooks("RITE 1624.xlsx").Activate
End Sub

修改

要确保您拥有正确的工作簿名称,可以在即时窗口中打印每个工作簿的名称。

打开VBA编辑器,然后按Ctrl + G打开立即窗口(或执行查看>立即窗口)。然后运行以下宏:

Sub OpenWkbkNames()

For Each Workbook In Workbooks
    Debug.Print Workbook.Name
Next
End Sub

请注意,这将为您提供与宏 在同一Excel实例中的所有打开的工作簿 的名称。如果您的RITE 1624文件位于单独的Excel实例中,则宏所在的实例将无法看到该文件(并且它不会出现在上面的OpenWkbkNames代码的输出中)。解决此问题的最简单方法是从包含宏的Excel实例中打开所有必需的文件。

Sub BringUpWorkbook()

    Workbooks.Open("RITE 1624.xls").Activate
End Sub