pipe理电子表格版本

我们在电子表格中有很多VBA代码,很多时候人们把它们保存到本地驱动器上。 当我们想要升级电子表格时,我们将新版本推送到共享驱动器,但是没有任何强制人们不使用旧版本电子表格的方法。

在这里有一些最佳做法部署VBA电子表格,所以如果有人加载一个旧版本,它不会打开或将要求您升级。 这似乎是任何自定义解决scheme必须是一个问题,所以我会通过MS会有一些解决scheme在这里。

微软是否有一个标准的版本/部署解决scheme,或者我需要拿出一些本土的解决scheme(电子表格ping数据库启动时检查版本)

如果只想要升级一个解决scheme的VBA代码是将所有代码分离到位于可访问服务器上的XLA中。 那么用户Excel中就有一个插件加载器,可以从服务器获取最新版本,或者可以将加载器embedded到工作簿中。 在http://www.decisionmodels.com/downloads.htm上有一个工作示例Reversioning Addin Loader

虽然我没有这样做。 我已经看到人们在将代码存储在数据库中的地方做了类似的事情,然后在启动时validation本地代码是一样的。

将自定义属性添加到工作簿,如GUID,整数,date或任何您需要的。 在启动时,检查值,并确定VBA是否应该继续或您决定的任何实现。 通常,我打开文件的“共享”最新版本并检查其自定义属性。 如果用户未使用最新版本,则显示提示用户获取最新版本的消息。 这通常是够好的。 我为Access,Word和Excel VBA取得了巨大成功多年。

一个真正的问题是忽视提示更新的人。 他们会这样做,因为他们害怕丢失数据,最新版本的错误等等。 你需要解决他们的问题,而不是试图把他们“locking”到这个问题的“解决scheme”。 我强烈build议你总是提供一种“导入/升级”数据到最新版本工作簿的方法。

相当简单的实施。 如果你有效地解决了上述问题,人们会开始相信“提示”,你会发现这是一个非常简单而有效的解决scheme。

如果工作簿绑定到数据库,则会变得更复杂一些。 通常,您不允许用户维护数据库之外的数据。 当他们想要修改数据时,为其生成工作簿。 完成修改数据后,您将导入数据。 (工作簿保存为“备份”用途,或者用户可以维护工作簿的副本以供参考或存档)。由于文档是“虚拟”的,因此无需维护文档版本。

  1. 定义当前的版本属性。 使用任何方式,像VBA中的常量。
  2. find一个访问最新版本的标准方法。 它可能在一个共享的驱动器上总是在同一条path上,或者其他方式。
  3. 如果当前版本号 < 最新版本号,则:
    • 要求升级
    • 显示升级过程
    • 可能对正常的VBA操作进行一些locking,直到升级完成

一个简单的解决scheme是:

  1. 在工作簿中存储一个版本号somwhere(例如隐藏的表格中,以防止意外删除)或作为variables。
  2. 将最新版本号的文本文件存储在您的共享上
  3. 包含一个自动读取latest-version-textfile的macros,并将版本号与当前运行的工作簿中的版本号进行比较。 如果太旧,只显示一个消息框(告诉用户更新)并closures工作簿。

我正在使用类似的方法,它工作正常。