如何在MAC上使用VBA从Excel 16打开工作簿?

我想用MAC 10.10上的Excel 16的VBA从一个小的macros打开一个简单的工作簿,但我不能。

我有我的macros:

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

与Office 11,此function正常工作,但我有Office 16的错误:

运行时错误“1004”:
应用程序定义或对象定义的错误

你有什么想法解决它吗?

问题是Excel 2016 for Mac有一个奇怪的“默认”目录,它工作在Mine /启动/Users/xxxxx/Library/Containers/com.microsoft.Excel/Data 。 因此,您需要工作簿的完全合格的path。 例:-

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

只是一个侧面说明,你不需要使用Call语句。 你可以简单地做到这一点: –

 Sub Test() Workbooks.Open "/Users/damien/Documents/Classeur1.xlsm" End Sub 
 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版本,然后相应地replace字符。 我不知道为什么,但我在MacOS上的Excel 2016是版本15.xx

我有一个使用Workbooks.Open在Excel 2011上工作的macros,在2016年不工作。我通过改变文件path的格式来使它工作。 现在path分隔符不是冒号,而是斜线。

这在Excel 2011中有效:

 path:..:file 

这适用于Excel 2016:

 path/../file