2009-07-14 35 views
0

我用Excel 2007工作,並從該網站下面的建議沒有奏效:問題在Excel 2007工作瓦特/相對路徑VBA

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

我也曾嘗試下面的代碼瓦特/沒有運氣,以及:

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

這些文件與宏的工作簿位於相同的路徑,所以我對我所做的錯誤感到茫然。

我正在運行Microsoft Vista。

在此先感謝。

+0

正在生成哪個錯誤? – 2009-07-14 23:49:59

回答

0

爲使ThisWorkbook.Path正常工作,應打開現有的Excel文件。
我的意思是 - 對於新的工作簿(未保存),路徑將爲空白。

編輯:宏是否啓用?你提供的代碼是否運行?
我試着用同一目錄中的2個文件&與ThisWorkBook.Path &「\ myOtherFile.xls」的代碼工作。

0

試試這個:

Workbooks.Open名:= ThisWorkbook.Path & application.pathseparator & 「第7章 - 10個MECHANICAL.xls」

這將確保正確的斜線被使用。

比爾

0

app.Path將返回路徑到Excel本身(在程序文件),這是不是你想要的。

您可能想要調用CurDir函數,該函數將返回當前目錄。


編輯:關於第二個想法,你可能不希望CURDIR功能,becausethe當你打開一個文件的當前目錄不會更改。如果您嘗試在當前工作簿的同一文件夾中打開文件,那麼您的代碼應該可以工作。

確保ThisWorkbook是您認爲它的工作簿。另外,你有什麼錯誤?

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 

輸出可以通過查看「查看 - 即時窗口」

1

我知道這是一個較舊的職位,但我沒有看到給出的最終答案,我遇到了同樣的問題。第一行代碼是正確的,但反斜槓需要轉義。

簡單地改變

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

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

,你會好到哪裏去。

+0

最好使用Application.PathSeparator而不是\。 – 2013-10-08 06:08:03