Nan*_* HE 4 excel vba excel-2003 excel-vba
myMacro.xls Workbooks.Open方法中的我的vba脚本运行如下,
Workbooks.Open Filename:="D:\ExcelMacroProj\myTest.xls", ReadOnly:=True
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将Filename值更改为如下所示的新路径时,但我的所有实践都不起作用.显示运行时错误1004.
Workbooks.Open Filename:="myTest.xls", ReadOnly:=True
or
Workbooks.Open Filename:="./myTest.xls", ReadOnly:=True
or
Workbooks.Open Filename:=".\myTest.xls", ReadOnly:=True
Run Code Online (Sandbox Code Playgroud)
实际上myMacro.xls和myTest.xls放在同一个文件夹中.这就是我想要更改为灵活的文件夹目录的原因.
我怎么能解决这个问题?感谢您的阅读和回复.
Filename 相对于当前的Excel目录(与打开的文档所在的目录不同).
您可以使用更改当前目录ChDir "x:\new\path".
但你真正想做的是:
Workbooks.Open Filename:=EnsureSlash(ThisWorkbook.Path) & "myTest.xls", ReadOnly:=True
Run Code Online (Sandbox Code Playgroud)
,EnsureSlash你的自定义函数\在字符串末尾附加一个反斜杠(),如果它还没有(因为ThisWorkbook.Path当路径是根目录时以斜杠结尾,否则没有).
您可以尝试使用ThisWorkbook.Path绝对路径.它返回运行宏的工作簿的文件夹路径(不包括文件名).这样的事情应该有效:
Workbooks.Open Filename:=ThisWorkbook.Path & "\myTest.xls", ReadOnly:=True
Run Code Online (Sandbox Code Playgroud)
确保包含反斜杠,因为工作簿路径不以一个结尾.
| 归档时间: |
|
| 查看次数: |
40987 次 |
| 最近记录: |