2015-07-20 214 views
2

我想在MAC 10.10上用Excel 16的VBA從一個小宏中打開一個簡單的工作簿,但是我不能。如何在MAC上使用VBA從Excel 16打開工作簿?

我有我的宏:

Sub Test() 
     Call Workbooks.Open("Classeur1.xlsm") 
    End Sub 

使用Office 11,此功能工作正常,但我與Office 16的錯誤:

運行時錯誤 '1004':
應用 - 定義或對象定義的錯誤

您有任何想法解決它嗎?

回答

1

的問題是Excel的2016年Mac有它的工作原理在一個陌生的「默認」的目錄。礦/Users/xxxxx/Library/Containers/com.microsoft.Excel/Data啓動。因此,您需要完整合格的工作簿路徑。例如: -

Sub Test() 
    Call Workbooks.Open("/Users/damien/Documents/Classeur1.xlsm") 
End Sub 

只是一個側面說明,你並不需要使用Call聲明。你可以簡單地這樣做: -

Sub Test() 
    Workbooks.Open "/Users/damien/Documents/Classeur1.xlsm" 
End Sub 
0

我不得不使用Workbooks.Open上的Excel 2011工作,我得到了它通過改變文件路徑的格式上下工夫2016年不工作的宏。現在路徑分隔符不是冒號,而是斜線。

這工作在Excel 2011:

path:..:file 

這工作在Excel 2016年

path/../file 
2
wbName = "FILENAME" 
If CInt(Split(Application.Version, ".")(0)) >= 15 Then 'excel 2016 support 
    wbName = Replace(wbName, ":", "/") 
    wbName = Replace(wbName, "Macintosh HD", "", Count:=1) 
End If 

檢查Excel版本,然後相應地替換字符。我不知道爲什麼,但我在macOS上的Excel 2016版本是15.xx

相關問題