0

我在我的计算机中开发了一个用户定义的函数并将文档保存为 XLSM。当我将它分发给我公司的其他用户时,只要他们打开工作簿然后点击“启用宏”,他们就会收到“找不到项目或库”错误。

如果他们击中Debug,黄线将落在用户定义函数的头线上,像这样

第一行出错

然后我检查了 VBE 的工具 - 参考,但在所有计算机(我的和其他用户的)中都没有发现任何缺失。

但是参考有点不同,

在我的电脑里是

开发者电脑中的参考

在其他用户的电脑上,

其他用户参考

唯一的区别是突出显示的行。在我的计算机中,它是 Microsoft office 16.0对象库,因为我使用 Excel 2013 安装了 Project 2016。而其他的是15.0

顺便说一句,我在点击“启用宏”按钮之前得到了上面的图片,因为一旦我点击它,错误消息将无限次显示,我将永远无法进入 VBE 中的参考。因此,当代码实际运行时,可能会有一个 MISSING 引用。

4

2 回答 2

2

此问题很可能是由不同版本的 Microsoft Office 对象库引起的。

您可以尝试导出 VBA 代码并删除 xlsm 文件中的 VBA 模块,然后将 VBA 代码重新插入到用户的计算机中。通常问题会得到解决。

出现此问题的原因是 Excel 实际上确实保存了 VBA 的编译代码,尽管我们从未看到任何编译代码或编译包。当其他用户打开您的启用宏的文件时,Excel 将自动运行已编译的机器代码,而不是可读的源代码。由于机器代码中不同库的接口不同(我猜它被称为接口?),Excel无法找到该库并发生错误。

因此,您还可以在分发 XLSM 文件之前尝试反编译您的 VBA 代码。访问此页面以下载用于反编译 XLSM 文件的工具: VBA Decompiler

于 2016-08-31T05:48:35.763 回答
1

当您在代码中的某处使用早期绑定时,可能会发生这种情况(我没有在屏幕截图的代码部分中看到这种情况)。

一种解决方法是更改​​您的代码以使用后期绑定。请查看 Siddharth Rout 在 防止 Excel VBA 编译错误中的答案,因为用户安装了旧版本的 MS Office (MS Outlook)?了解更多信息。

于 2016-08-31T07:02:53.223 回答