2011-05-10 388 views
4

myMacro.xlsWorkbooks.Open方法的工作我的VBA腳本以及下面,Workbooks.Open方法在VBA

Workbooks.Open Filename:="D:\ExcelMacroProj\myTest.xls", ReadOnly:=True 

但是,當我嘗試將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 

實際上myMacro.xlsmyTest.xls放置在相同的文件夾。這就是爲什麼我想要更改爲靈活的文件夾目錄。

我該如何解決這個問題?讚賞您的閱讀和回覆。

回答

5

您可以嘗試使用ThisWorkbook.Path來設置絕對路徑。它返回運行宏的工作簿的文件夾路徑(不包括文件名)。像這樣的東西應該工作:

Workbooks.Open Filename:=ThisWorkbook.Path & "\myTest.xls", ReadOnly:=True 

請確保包含一個反斜槓,因爲工作簿路徑不以一個結尾。

+0

工作得很好。非常感謝。 – 2011-05-10 01:04:31

8

Filename與當前Excel目錄(與打開文檔的目錄不同)相對。

使用ChDir "x:\new\path"更改當前目錄。

但是你真正想要做的是:

Workbooks.Open Filename:=EnsureSlash(ThisWorkbook.Path) & "myTest.xls", ReadOnly:=True 

,其中EnsureSlash是附加一個反斜槓(\)到字符串的結尾,如果它不是已經存在(您的自定義功能,因爲ThisWorkbook.Path結束當路徑是根目錄時以斜線顯示,否則不顯示)。

+0

我正在尋找這個「相對於什麼?」信息,謝謝! – Scorchio 2016-01-21 11:50:04