我想在MAC 10.10上用Excel 16的VBA从一个小宏中打开一个简单的工作簿,但是我不能。如何在MAC上使用VBA从Excel 16打开工作簿?
我有我的宏:
Sub Test()
Call Workbooks.Open("Classeur1.xlsm")
End Sub
使用Office 11,此功能工作正常,但我与Office 16的错误:
运行时错误 '1004':
应用 - 定义或对象定义的错误
您有任何想法解决它吗?
我想在MAC 10.10上用Excel 16的VBA从一个小宏中打开一个简单的工作簿,但是我不能。如何在MAC上使用VBA从Excel 16打开工作簿?
我有我的宏:
Sub Test()
Call Workbooks.Open("Classeur1.xlsm")
End Sub
使用Office 11,此功能工作正常,但我与Office 16的错误:
运行时错误 '1004':
应用 - 定义或对象定义的错误
您有任何想法解决它吗?
的问题是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
我不得不使用Workbooks.Open上的Excel 2011工作,我得到了它通过改变文件路径的格式上下工夫2016年不工作的宏。现在路径分隔符不是冒号,而是斜线。
这工作在Excel 2011:
path:..:file
这工作在Excel 2016年
path/../file
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