2015-07-20 374 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

相关问题