繁体   English   中英

vba中的运行时错误9

[英]Run-time error 9 in vba

美好的一天,我在VBA中非常陌生,并且在指定路径方面遇到问题,请考虑以下事项:

x = Workbooks(ThisWorkbook.Path & "/" & "06-17.xlsx").Worksheets(1).Cells(2, 1).Value

有了这段代码,我会遇到运行时错误9,但是如果我使用以下代码,它将运行正常:

Workbooks.Open (ThisWorkbook.Path & "/" & "06-17.xlsx")
x = ActiveWorkbook.Worksheets(1).Cells(2, 1).Value

我发现运行时错误9意味着只能在定义的范围内访问数组的元素和集合的成员,但是我不知道它与我的情况如何相关。 为什么会发生?

在第二个示例中,第二行执行时打开工作簿。
在第一个示例中,不能保证工作簿在执行时将打开。

Workbooks集合的索引是文件 (或整数),而不是文件path和name

因此, Workbooks(ThisWorkbook.Path & "/" & "06-17.xlsx")将无效(因为它包含路径),而Workbooks("06-17.xlsx")将是有效的。

这就是为什么(或者至少与之相关的原因)即使文件名相同,也无法在Excel中同时打开两个工作簿,即使它们是从两个不同的目录中打开的也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM