我在其中一个部门中部署了一个Excel 2003加载项,偶尔需要更新。目前发生的是我将新版本从我的机器发布到中心位置,这会更新存储在数据库中的版本号,每次运行时加载项都会检查该版本号,以及是否有更新的版本号找到然后加载项暂停,并显示一条消息,通知用户他们需要更新加载项。
这当前涉及他们运行另一个工作簿,其中包含更改加载项的workbook_open
事件。
我想要的是加载项检测,在进行用户操作之前,可以使用新版本并静默安装它。问题是卸载现有版本的第一步失败了,因为加载项中的任何代码都会在卸载加载项时立即完成。
我会在用户的个人.xls中动态创建一些代码以处理转换,但是我无法在用户的计算机中设置“信任访问Visual Basic项目”标志,因此无法进行复制加载项中的代码。
我能从这里看到的唯一方法是有两个加载项,一个用于处理更新,另一个用于实际工作。当我不可避免地需要更新更新加载项时,问题出现了!
其他人可以提出更好的解决方案吗?这必须是100%Excel,没有VSTO等。
答案 0 :(得分:4)
我们使用单独的插件作为引导程序。
复杂,但确实有效。
答案 1 :(得分:2)
Dick Kusleika很高兴今天关于管理加载项的博客!
http://www.dailydoseofexcel.com/archives/2009/07/29/conditionally-load-excel-add-ins/
一些好的建议可以适用于我的情况。
答案 2 :(得分:0)
我实现类似的一种方式,虽然前一段时间如下:
在公共页面上提供一个名为Update的按钮(如果您使用的话,可能是常见文件),当用户单击该按钮时,它会在网络位置打开xls并将该文件中的代码复制到本地文件并关闭新打开的文件。
这样,每当我有更新时,我都会发送一封电子邮件,要求他们在本地更新代码。
因为我的用户很少,而且更新数量相当少。如果您想要自动更新,则会阻止您在每次打开文件时检查版本号。
答案 3 :(得分:0)
使用现成的ClickOnce部署,只要启动使用它的应用程序(Excel),就会检查加载项版本。不确定是否可以这种方式部署非托管代码。
答案 4 :(得分:0)
我尝试了不同的东西,步骤如下: 1.写一个插件并将其放在共享的驱动器空间 2.将项目添加到VBA引用 3.您在Excel工作表中使用的函数和宏添加为对插件的引用 每次excel表加载,新的插件和引用都会刷新。
我认为解决方案更新按钮,因为网络不在线时出现问题。
答案 5 :(得分:0)
因为我没有找到任何“工作流程”,所以我将从昨天处理几乎相同的问题时发布经验。 (没有自动更新)
在@Lunatik的dilydoseofexcel.com链接中,查尔斯张贴了他的Addin(可从http://www.decisionmodels.com/downloads.htm#addload下载),这解决了我的情况。
任何想要使用远程服务器上的插件的用户都必须添加AddLoaderV2.xla
插件。
从Excel中:Developer Tab - Excel Add-ins - Browse - ...\AddLoaderV2.xla - select 'NO' when asked to copy it locally
T:\my\remote\folder\SOFTWARE\MSOFFICE\Excel_Add-ins
.
├── AddinLoad.txt
├── AddLoaderV2.xla
└── USER_SonGokussj4
├── FinancialFunctions_v0.0.1.xlam
├── FinancialFunctions_v0.0.2.xlam
└── dev_FinancialFunctions_v0.0.3.xlam
FinancialFunctions, auto, T:\my\remote\folder\SOFTWARE\MSOFFICE\Excel_Add-ins\USER_SonGokussj4\
注意:文件夹的前缀USER
只是我的偏爱,因为我为很多人维护插件。
FinancialFunctions_v0.0.2.xlam
时,我做了一个副本(因为v0.0.2被很多人使用):dev_FinanctialFunction_v0.0.3.xlam
v0.0.3
并进行必要的更改FinanctialFunctions_v0.0.3.xlam
auto
AddinLoad.txt
加载(在v0.0.3
中定义)Addins
选项卡中有https://i.imgur.com/H2ru2hV.png,因此用户只需选择要重新加载的加载项我想从您的插件中进行一些自动化操作不会花费很多工作,例如“检查是否有新版本,如果有,请调用reload
AddLoaderV2
插件。”
希望这对某人有帮助。我最大的问题是了解.xlam
文件和AddinLoad.txt
根名称的命名,以便始终仅加载最新版本。下载他的Addin时有3页的自述文件。
抢救查尔斯!祝你有美好的一天。
现在我必须找到类似于加载PowerPoint加载项的内容...