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

时间:2015-07-20 15:49:04

标签: excel macos vba excel-vba-mac

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

我有我的宏:

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

使用Office 11,此功能正常,但我在Office 16中出错:

  

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

你有什么想法解决它吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

问题是Excel 2016 for 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

答案 2 :(得分:0)

我有一个使用Workbooks.Open的宏,它在Excel 2011上工作,并且在2016年没有工作。我通过更改文件路径的格式来实现它。现在路径分隔符不是冒号,而是斜杠。

这适用于Excel 2011:

path:..:file

这适用于Excel 2016:

path/../file