2016-09-07 64 views
0

我很難在VBA中打開工作簿。VBA Workbooks.Open type mismatch

這行代碼給我一個類型不匹配。 path是一個String,我100%肯定它是有效的,我能夠做到.SaveAspath沒有問題。

' Compile Error: Invalid qualifier on Workbooks 
Set wbNew = Workbooks(path).Open 

我已經嘗試過其他的排列像這樣的,但我得到了Compile Error: Invalid qualifier對象Workbooks本身上。我是否缺少參考?

' Compile Error: Invalid qualifier on Workbooks 
Workbooks.Open path 

如何在VBA中打開工作簿?

+0

第一個代碼段中的運行時錯誤*下標是否超出範圍? –

+0

這不是重複的,因爲'Application.'部分不是我能找到的任何SO問題的一部分,相信我,我花了一段時間看着你鏈接的那個,它根本不明顯。 –

+1

您是否碰巧在範圍內有一些名爲'Workbooks'的變量或函數?名字衝突會解釋它。 –

回答

1
Set wbNew = Workbooks(path).Open 

path應的一個參數Open方法;您將它作爲索引傳遞給Application.Workbooks集合 - 這是工作簿的集合已經打開,因此path可能不會與任何已打開的工作簿相對應,因此是錯誤。

因此正確和完全合格的調用是:

Dim wbNew As Excel.Workbook 
Set wbNew = Application.Workbooks.Open(path) 
+0

'Application.Workbooks.Open(path)'omfg,我花了數小時搜索並找不到。 –

-3

試試這個

PATH = 「C:\用戶\ USER \桌面\ test.xlsx」

昏暗myShell作爲對象

集myShell =的CreateObject( 「WScript.Shell」)

myShell.R un Path

+1

爲什麼不_you_嘗試它並驗證它的工作原理?畢竟,如果你100%知道這個答案是正確的,答案只應該寫出來。我想你會對結果感到驚訝... – byxor

+0

對不起,我沒有粘貼任何東西。我下次再檢查一次。 – irvin

+0

沒問題。 StackOverflow越容易越多。很快你會全職;) – byxor

相關問題