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

3

我希望用Excel 16在MAC 10.10上使用VBA从一个小宏打开一个简单的工作簿,但是我无法做到。

这是我的宏:

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

在Office 11中,这个功能可以正常工作,但在Office 16中,我遇到了一个错误:

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

请问你有任何修复它的想法吗?

3个回答

3
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。


这在2016年有效。我想知道为什么它现在不起作用。 - DanCue

2

问题在于Excel 2016 for Mac有一个奇怪的“默认”目录。我的Excel启动时会进入/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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接