Workbooks.Open方法在VBA中
我在myMacro.xls Workbooks.Open
方法中的vba脚本如下所示,
Workbooks.Open Filename:="D:\ExcelMacroProj\myTest.xls", ReadOnly:=True
但是,当我尝试将Filename
值更改为下面的新path,但我所有的做法都不起作用。 显示运行时错误1004 。
Workbooks.Open Filename:="myTest.xls", ReadOnly:=True or Workbooks.Open Filename:="./myTest.xls", ReadOnly:=True or Workbooks.Open Filename:=".\myTest.xls", ReadOnly:=True
其实myMacro.xls和myTest.xls被放置在同一个文件夹中。 这就是为什么我想要更改为灵活的文件夹目录。
我怎么能解决这个问题? 赞赏您的阅读和答复。
您可以尝试使用ThisWorkbook.Path
来创build绝对path。 它返回运行macros的工作簿的文件夹path(不包括文件名)。 像这样的东西应该工作:
Workbooks.Open Filename:=ThisWorkbook.Path & "\myTest.xls", ReadOnly:=True
确保包含反斜杠,因为工作簿path不会以一个结束。
Filename
相对于当前的Excel目录(与打开的文档所在的目录不同)。
您可以使用ChDir "x:\new\path"
更改当前目录。
但是你真正想要做的是:
Workbooks.Open Filename:=EnsureSlash(ThisWorkbook.Path) & "myTest.xls", ReadOnly:=True
其中EnsureSlash
是一个自定义函数,它在string末尾附加反斜杠( \
),如果它还没有在那里(因为当path是根目录时, ThisWorkbook.Path
以斜杠结尾,否则不会)。