安全的VBA Excel加载代码

Kel*_*ref 8 excel vba excel-vba excel-addins

我有一个在VBA中开发的Excel插件,部署在网络上.

插件从Oracle数据库中读取,并在新工作表中粘贴表,该工作表还将包含一个用于刷新表的按钮(三角形).

一切都很好,但我必须用密码保护代码.

当我这样做时,某些机器上会出现以下错误:

隐藏模块中的编译错误:Main.当代码与此应用程序的版本,平台或体系结构不兼容时,通常会发生此错误.

虽然它在解锁时完美编译.

在其他机器上,它需要关闭VBA密码,即使我没有在关闭事件下定义的类型.

我希望保护我的代码,而不会遇到上述问题.任何建议表示赞赏.

daZ*_*Zza 3

据我所知,有两种情况会发生此错误:

1:32位与64位问题(已经在评论中提到)。如果您开发了 32 位插件并尝试在 64 位 Excel 中部署/使用它,则会出现您引用的错误消息。

2:缺少参考文献。

我认为第二个选项更有可能是问题的原因,因为通常公司中的所有客户端电脑都会安装相同版本的 MS Office,并且此错误仅发生在some machines.

所以我建议检查一下你的参考资料。在 VBA 编辑器 (Alt+F11) 中,转到工具 --> 引用并记下所有勾选的模块。然后将其与发生错误的客户端进行比较(转到客户端 PC 并重复该过程)。

如果开发和客户端 PC 之间勾选的模块不匹配,则很可能是导致此问题的原因。您还可能会遇到客户端 PC 上名称前面写有“MISSING”的模块。在这种情况下,请删除缺失模块中的勾号并尝试执行您的插件。

如果它工作完美,您应该可以继续使用,否则您将必须在客户端 PC 上手动安装缺少的模块。

希望对你有帮助。