我刚刚升级到Office 2016,我的大多数用户都没有这样做,当用户尝试运行我的脚本时,我遇到了一个新错误。
“编译错误,无法找到项目或库”
我查看了引用,看起来它正在尝试引用“Microsoft Word 16.0对象库”,并且在运行Office 2013的计算机上缺少它。我没有看到更改我对2013版本的引用的选项,并且我不知道如何在不升级所有人的情况下让我的用户访问2016参考(现在不是一个选项)。
此错误出现在第一行代码
上Set app = Range("A2")
答案 0 :(得分:5)
您需要包含Excel 15.0对象库才能使用Excel.Range(" A2")或使用后期绑定,如下所示:
Dim excelApp As object, r as object
Set excelApp = CreateObject("Excel.Application")
Set r = excelApp.Range("A2")
答案 1 :(得分:4)
VBA项目引用Office应用程序的Office文档也适用于以后的Office版本。当您在更高版本上打开它们时,它们似乎会引用该更高版本。
但是,如果您使用更高版本的Office版本保存此类文件,然后使用原始Office版本打开它,则您将MISSING:
引用任何Office文件应用程序,而不是文件所属的那些应用程序。
也就是说,如果您有一个引用Excel和Word的Excel文件,在Office 2016下重新保存,然后在Office 2013中打开,则对Excel的引用将没有问题,但对Word的引用将为MISSING:
。
要避免这种情况,请始终将文件保存在您支持的最早版本的Office下,或者完全删除对其他Office应用程序的引用,并使用late binding进行调用。