美好的一天,我在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意味着数组元素和集合成员只能在其定义的范围内访问,但它与我的情况有什么关系,我不知道。 为什么会这样?
答案 0 :(得分:2)
在第二个示例中,第二行执行时工作簿处于打开状态。
在第一个示例中,无法保证工作簿在执行时将处于打开状态。
答案 1 :(得分:1)
Workbooks
集合的索引是文件名称(或整数),而不是文件路径和名称。
因此Workbooks(ThisWorkbook.Path & "/" & "06-17.xlsx")
无效(因为它包含路径),但Workbooks("06-17.xlsx")
有效。
这就是为什么(或者,至少与之相关的原因)如果它们具有相同的文件名,即使它们已经从两个打开,也不能同时在Excel中打开两个工作簿的原因不同的目录。