【发布时间】:2015-11-19 00:54:45
【问题描述】:
Excel VBA 中的这一小段代码有点问题。
我要做的就是在工作簿中选择多张工作表并将它们导出为一个 PDF。 我有很多不想隐藏或移动的表格,所以在我的代码前面,我循环并将特定名称保存在一个数组中。我遇到了这个错误,所以我想我会简单地对他们的名字进行硬编码,看看是否有效。
但即使使用硬编码的名称,我也会收到“下标超出范围错误”,所以肯定有其他问题。
wb.Sheets(Array("Sheet 1", "Sheet 2", "Sheet 3", "Sheet 4", "Sheet 5")).Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, _ ............
是否存在与上述声明相关的任何已知错误? (我只包含了前 2 行,因为它不会在第一行之后执行) 或者有什么建议可以阻止这个错误的发生?
注意:我已更改工作表名称,因为它们与敏感数据相关。然而,一个例子是“S&C vendor1”
【问题讨论】:
-
您确定您的
wb参考指向正确的工作簿吗?这种语法对我来说很好。 -
是的,Set wb = xl.Workbooks.Open(F.Path) 我也在遍历许多工作簿,但我在代码的许多其他部分都引用了 wb,它们执行得很好。跨度>
-
那么可能还有另一条我们无权访问的信息解释了问题。尝试逐一删除工作表名称,直到错误消失。
-
也许直接用工作表的名称填充数组,而不是手动输入名称。
wb.sheets(1).Name例如用于第一个工作表,依此类推。
标签: arrays vba excel subscript