我在计算机中开发了一个用户定义的函数,并将文档保存为XLSM。当我将它分发给我公司的其他用户时,他们得到了“无法找到项目或图书馆”的信息。错误,只要他们打开工作簿然后点击"启用宏"。
如果他们点击Debug
,黄线将落在用户定义函数的头部,就像这样
然后我检查了VBE的工具 - 参考,但在所有计算机(我的和其他用户')中找不到任何遗漏。
但参考文献有点不同,
在我的电脑中,它是
在其他用户中'电脑,它是
唯一的区别是突出显示的行。在我的计算机中,它是Microsoft office 16.0 对象库,因为我使用Excel 2013安装了Project 2016.而其他人' 15.0 。
顺便说一句,在我点击"启用宏"之前,我得到了上面的图片。按钮,因为一旦我点击它,错误信息将显示无限次,我将永远无法进入VBE中的参考。因此,当代码实际运行时,可能会有一个MISSING引用。
答案 0 :(得分:2)
此问题很可能是由Microsoft Office对象库的不同版本引起的。
您可以尝试导出VBA代码并删除xlsm文件中的VBA模块,然后将VBA代码重新插入用户'电脑。通常问题将得到解决。
出现此问题的原因是Excel实际上已保存VBA的已编译代码,但我们从未看到任何已编译的代码或已编译的包。当其他用户打开启用了宏的文件时,Excel将自动运行已编译的机器代码而不是可读的源代码。由于机器码中不同库的接口不同(我猜它叫做接口?),Excel无法找到库并发生错误。
因此,您还可以在分发XLSM文件之前尝试反编译VBA代码。访问此页面以下载用于反编译XLSM文件的工具: VBA Decompiler
答案 1 :(得分:1)
当您在代码中的某处使用早期绑定时,可能会发生这种情况(我没有在屏幕截图的代码部分中看到这种情况)。
解决方法是更改代码以使用后期绑定。请看看Siddharth Rout的答案 Preventing Excel VBA compile errors due to users having an older version of MS Office (MS Outlook) installed?了解更多信息。