2016-07-25 192 views
1

我有這樣的代碼,試圖打開一個文件:打開文件VBA

Dim wbTemplate as Workbook 
Dim template as String 

template = ThisWorkbook.Path & "\sample.xlsx" 
Set wbTemplate = Worbooks.Open(template) 

我也試過:

Set wbTemplate = Worbooks.Open(filename:=template) 

但他們都沒有工作。順便說一下,我試圖打開的活動工作簿和文件具有相同的目錄。有任何想法嗎?謝謝!

+0

會發生什麼事,當你運行該代碼? –

+0

@TimWilliams對不起,我忘了提及錯誤。它返回一個** Object Required **錯誤。 – ramedju

+7

你有'Worbooks' - 但它應該是'Workbooks'。這只是一個錯字問題嗎? –

回答

0

這是我所用,

Dim FileName As String 

FileName = ActiveWorkbook.Path & "\CRMS.csv" 
Workbooks.Open (FileName) 
+0

我也試過,但我想要一個變量來處理文件。 – ramedju

+0

@ramedju問題是:這是否有效?你可以打開文件,但設置一個變量,而打開時出錯? –

+0

@DirkReichel這也不起作用。它有同樣的錯誤。 – ramedju

0

嘗試使用。新增代替。開:

Dim fName As String 

fName = "YourPath\Sheetname.xlsx" 
Workbooks.Add (fName) 

或:

Set NewBook = Workbooks.Add(fName) 

截至目前,它總是適用於我。有時Open方法由於各種原因(訪問文件夾權限,受保護的工作簿等)而失敗。

+0

有些反饋會很好!謝謝。 – Doug

1

@RobinMackenzie發現它。

但你能避免這些的困惑並獲得通過Option Explicit

使用您的方案爲例,如果使用Option Expilict,則VBE將突出字去掉誤導性的錯誤信息,只有當你嘗試執行worbooks代碼並運行到錯誤 enter image description here

而且該錯誤信息是更準確:Variable not defined

沒有Option Explicit,VBE突出整行,並拋出誤導性的錯誤(correc噸,但誤導):Object required

enter image description here

這裏,閱讀更多:https://blogs.msdn.microsoft.com/developingfordynamicsgp/2009/08/06/what-does-option-explicit-do-in-vba/