我们在电子表格中有很多VBA代码,很多时候人们将它们保存到本地驱动器。当我们想要升级电子表格时,我们将新版本推送到共享驱动器,但没有任何方法可以强制人们不使用旧版本的电子表格。
这里是否有一些最佳实践来部署vba电子表格,因此如果有人加载旧版本,它将无法打开或要求您升级。对于任何自定义解决方案来说,这似乎都是一个问题,所以我通过MS会有一些解决方案。
微软是否有针对此的标准版本控制/部署解决方案,或者我是否需要提出一些自行开发的解决方案(电子表格在启动时ping数据库以检查版本)
答案 0 :(得分:1)
如果您希望能够升级一个解决方案的VBA代码是将所有代码分离到位于可访问服务器上的XLA。 用户Excel有一个从服务器获取最新版本的插件加载器,或者您可以将加载器嵌入到工作簿中。 有一个工作示例可用于恢复Addin Loader http://www.decisionmodels.com/downloads.htm
答案 1 :(得分:0)
虽然我没有这样做。我看到人们做了类似的事情,他们将代码存储在数据库中的dll中,然后在启动时验证本地代码是否相同。
答案 2 :(得分:0)
向工作簿添加自定义属性,例如GUID,整数,日期或任何您需要的属性。在启动时,检查值并确定VBA是否应该继续或您决定实施什么。通常,我打开文档的“共享”最新版本并检查其自定义属性。如果用户未使用最新版本,则显示一条消息,提示用户获取最新版本。这通常足够好。多年来我一直这样做,Access,Word和Excel VBA取得了巨大成功。
一个真正的问题是忽略更新提示的人。他们会这样做是因为他们害怕丢失数据,最新版本中的错误等等。您需要解决他们的顾虑,而不是试图将他们“锁定”到您解决此问题的“解决方案”中。我强烈建议您始终提供一种“导入/升级”数据到最新版本工作簿的方法。
实施起来相当简单。如果你有效地解决了上述问题,人们就会开始信任“提示”,你会发现这是一个非常简单有效的解决方案。
如果您的工作簿与数据库绑定,则会更复杂一些。通常,您不允许用户将数据维护在数据库之外。当他们想要修改数据时,您可以为他们生成工作簿。完成修改数据后,导入数据。 (工作簿被保存用于“备份”目的,或者用户可以维护工作簿的副本以供参考或存档。)这样做的优点是不需要维护文档版本,因为文档是“虚拟的”。
答案 3 :(得分:0)
答案 4 :(得分:0)
一个简单的解决方案是:
我正在使用类似的方法,它工作正常。