我想在MAC 10.10上使用Excel 16的VBA从一个小宏打开一个简单的工作簿,但我不能。
我有我的宏:
Sub Test()
Call Workbooks.Open("Classeur1.xlsm")
End Sub
使用Office 11,此功能正常,但我在Office 16中出错:
运行时错误'1004':
应用程序定义或对象定义的错误
你有什么想法解决它吗?
答案 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