我有一个 Excel 2003 加载项部署在我们的一个部门中,偶尔需要更新。目前发生的事情是我将新版本从我的机器发布到一个中央位置,这会更新存储在数据库中的版本号,插件会在每次运行其中的任何模块时检查该版本号,如果有更新的版本号找到后加载项会停止,并显示一条消息通知用户他们需要更新加载项。
这目前涉及他们运行另一个工作簿,其中包含更改加载项的 workbook_open
事件。
我想要的是加载项检测到有可用的更新版本并在继续用户操作之前静默安装它。问题是这在卸载现有版本的第一步失败,因为加载项中的任何代码在卸载加载项时立即完成。
我会在用户的 personal.xls 中即时创建一些代码来处理转换,但我无法在用户的机器上设置“信任对 Visual basic 项目的访问”标志,因此无法复制加载项中的代码。
我在这里看到的唯一方法是有两个加载项,一个处理更新,一个实际执行工作。当我不可避免地必须更新更新加载项时,问题就来了!
还有其他人可以提出更好的解决方案吗?这必须是 100% Excel,没有 VSTO 等。
最佳答案
我们使用单独的插件作为 Bootstrap 。
- 主插件可以更新 Bootstrap
- 如果主插件需要更新,它会加载 Bootstrap ,然后使用 OnTime 调用安排对 Bootstrap 中的引导例程的调用,并立即卸载自身。
- ontime 调用执行。
- Bootstrap 加载主插件、重新启动主插件、卸载自身。
很复杂,但是很管用。
关于excel - 更新 Excel 加载项的过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1204883/