在Excel 2007 VBA中使用/相对路径问题

时间:2009-07-14 23:39:01

标签: excel vba relative-path

我正在使用Excel 2007,此站点的以下建议无效:

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"

我也尝试过以下代码,但没有运气:

Workbooks.Open Filename:=app.Path & "Chapter 7 - 90 ECS 1 LLC.xls"

这些文件与带有宏的工作簿位于同一路径中,所以我对自己做错了不知所措。

我正在运行Microsoft Vista。

提前致谢。

5 个答案:

答案 0 :(得分:1)

我知道这是一篇较老的帖子,但我没有看到最后的答案,我遇到了同样的问题。第一行代码是正确的,除了反斜杠需要转义。

只需更改

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"

Workbooks.Open Filename:=ThisWorkbook.Path & "\\Chapter 7 - 10 MECHANICAL.xls"

你会好起来的。

答案 1 :(得分:0)

要使ThisWorkbook.Path工作,应该打开现有的excel文件 我的意思是 - 对于新工作簿(未保存),路径将为空白。

编辑:是否启用了宏?您提供的代码是否运行? 我在同一个dir&中尝试了2个文件。 ThisWorkBook.Path& “\ myOtherFile.xls”有效。

答案 2 :(得分:0)

试试这个:

Workbooks.Open Filename:= ThisWorkbook.Path& application.pathseparator& “第7章 - 10章MECHANICAL.xls”

这将确保使用正确的斜杠。

比尔

答案 3 :(得分:0)

app.Path将返回Excel本身的路径(在Program Files中),这不是你想要的。

您可能想要调用CurDir函数,该函数将返回当前目录。


编辑:第二个想法,您可能不需要CurDir函数,因为当您打开文件时当前目录不会更改。如果您尝试在与当前工作簿相同的文件夹中打开文件,则代码应该可以正常工作。

确保ThisWorkbook是您认为的工作簿。另外,你得到了什么错误?

答案 4 :(得分:0)

您的第一行代码是正确的。

Workbooks.Open Filename:=ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"

ThisWorkbook.path 将返回运行代码的工作簿的路径。

如果运行代码的工作簿尚未保存,则会返回一个空字符串。

尝试添加此代码以查看正在发生的事情:

Debug.Print ThisWorkbook.Path & "\Chapter 7 - 10 MECHANICAL.xls"
Debug.Print ThisWorkbook.Saved

可以通过“查看 - 立即窗口”

查看输出