[英]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.