首页 文章

安全的VBA Excel加载代码

提问于
浏览
8

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

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

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

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

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

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

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

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

1 回答

  • 3

    我知道发生此错误的两种情况:

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

    2:缺少参考文献 .

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

    所以我建议检查你的参考文献 . 在VBA-Editor(Alt F11)中,转到工具 - >引用并记下任何勾选的模块 . 然后将其与发生错误的客户端进行比较(转到客户端PC并重复此过程) .

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

    如果它完美无缺,你应该好好去,如果没有,你将不得不在客户端PC上手动安装缺少的模块 .

    希望这会帮助你 .

相关问题