【问题标题】:Updating an xlam add-in using VBA使用 VBA 更新 xlam 加载项
【发布时间】:2014-01-10 17:06:44
【问题描述】:
Sub Install_Addin()

   Dim AI as excel.addin
   Set AI = Application.Addins.Add("C:\Add_In.xlam")
   AI.Installed = True
   Application.Addins("Add_in").Installed = True

End Sub

以上是我从 Chip Pearson 获得的用于安装 Excel 插件的代码。这段代码第一次运行良好。我的加载项有一个控制按钮(我在编写加载项时修改了 xml),因此,安装加载项时(使用上面的代码)一个按钮会自动出现在我的 excel 功能区上,然后我可以使用我的加载项。

问题是当我尝试重新安装我的加载项时。当我更新插件的代码并尝试使用上述代码重新安装时,我收到此错误----

runtime error '1004'
Unable to copy add-in to library

发生这种情况是因为插件在重新安装之前未正确卸载。我已经放弃在网上搜索使用 VBA 代码卸载加载项的方法。我找不到任何简单的解决方案。

目前,卸载我的加载项的唯一方法是手动进行。首先,我从 Microsoft Add ins 文件夹中删除加载项。然后我打开 Excel,它给了我一条警告消息,它找不到加载项。然后我转到加载项管理器并单击我的加载项,然后单击开始。然后在加载项列表中勾选我的加载项,然后 excel 显示“加载项不存在。从列表中删除?”然后插件最终被删除。

只有像这样手动删除插件后,我才能使用上面的代码重新安装我的插件。现在这真的很麻烦,尤其是当我想将加载项分发给其他人时。必须有一种更简单的方法来更新加载项,而无需先手动删除它。

请不要提供随机答案或您认为“可能”对这个问题正确的答案。也请不要告诉我“试试这个和那个”。只有当您知道正确的解决方案时,请告诉我。我已经尝试了很多东西都无济于事。 :)

非常感谢。

【问题讨论】:

  • Only if you know the correct solution, tell me about it. I have already tried a number of things to no avail- 如果您向我们展示您尝试过的方法和无效的方法,您不必担心从 SO 那里得到相同的建议。

标签: vba excel


【解决方案1】:

如果您要更改 XLAM 中的代码但保持其名称和位置相同,则无需将其作为插件重新安装。

如果要卸载现有插件以便安装具有不同名称的新版本,可以将现有插件的 Installed 属性设置为 False,但这会将现有插件留在可用但未安装的列表中插件。

如果您想更改插件的名称或位置,更好的解决方案是使用存根插件加载器来简化还原和加载问题。您可以从我的网站http://www.decisionmodels.com/downloads.htm 下载一个开源工作示例

【讨论】:

  • 嘿查尔斯,非常感谢您的回答。是的,我正在更改代码,而不是插件的位置。仅当我一个人使用插件时,更改 XLAM 代码才能成为解决方案。但是插件已经分发给了很多人,所以我想要一个解决方案,我只是重新分发安装程序。我考虑过更改更新插件的名称并将现有插件设置为 false。但正如您所说,这会将现有加载项留在可用加载项列表中,因此不是一个具体的解决方案。
  • 我建议在您的情况下使用存根插件加载程序(我多年来一直成功使用这种方法)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多