Addin中断后恢复打开工作簿

时间:2016-04-19 17:06:38

标签: vba excel-vba excel

我已经编写了一个Excel插件,可以定期检查远程存储库中的数据更新,包括检查插件是否在Excel启动时加载(在插件的Workbook_Open事件期间)。如果检测到新的存储库数据,则addin会要求用户允许继续更新。如果用户点击"是",插件会自动更新,一切都很开心......除了......

如果Excel尚未运行且用户选择要打开的Excel文件(例如,通过在Windows中双击),则会发生此事件序列并且一切正常,但用户请求的文件打开中断而不是从事。 Excel应用程序正在运行,但未加载任何工作簿(工作簿区域为空框架)。

我相信我有两个选择,我不知道如何完成:

  1. 防止插件完成更新检查,直到用户选择的文件完成其打开序列并完全加载,或
  2. 允许插件自行更新,然后以某种方式重新使用用户选择的文件来完成打开/加载文件。
  3. 我无法找到用户请求的文件的文件名/路径,因此我的插件无法指示要加载的文件。

    我当前的解决方法是MsgBox告诉用户关闭Excel并重新打开所选文件。理想情况下,应该进行插件更新,并且原始操作应该完成,而无需用户干预。

    (在选项1的基础上,我可以为插件启动延迟计时器,以检查Excel启动后XX秒的更新,但这对我来说似乎很糟糕。)

    任何指导或想法都表示赞赏。我的interwebz搜索没有为确切的场景命中正确的关键字组合。

1 个答案:

答案 0 :(得分:0)

  1. 不是立即打开新的插件更新文件,而是可以使用OnTime来延迟它,这应该允许其他文件成功打开。见这里:Process for updating Excel add-in?

  2. 在答案中,您还会在此处看到对此软件包的引用,其中包含您需要的所有内容。自动更新很难,所以我建议与其他人一起解决。 http://www.decisionmodels.com/downloads.htm#addload (向下滚动到加载项加载器版本2)