Excel工作簿共享VBA功能的最佳方法

时间:2018-08-02 11:37:22

标签: excel vba excel-vba version-control

我寻求有关如何管理多个工作簿中使用的用户定义VBA功能的建议:

背景: 随着时间的流逝,我已经创建了多个Excel工作簿(wb),每个工作簿的用途都稍有不同,它们最终基于我的用户定义函数和类模块的库(从现在开始: library )。 wb的“主”版本受版本控制。 wbs由几个人使用。

但是,我没有在中使用插件,因此模块和类模块实际上在每个wb的特定VBA项目中本地存在。在进行扩展或更正时,这成为一场噩梦,因为我必须在每个wb中重新审视并实施上述更改。

此外,每个wb中都有独特的功能,应理解为不应共享这些功能。但是,这些功能可能会使用功能。

主要问题:如何在多个用户共享的多个工作簿中管理vba功能?

我的考虑事项/子问题

  • 我应该将转换为真正的插件,并丢弃每个wb中的本地副本吗?
  • 如何在获得maser版本的副本时告诉用户该加载项是必需的?
  • 如何应对在用户中分散的旧版/本地版本/分支?可能用于递归任务的当前旧版副本和将来的旧版副本?
  • 此类外接程序应存储在哪里(在共享文件夹中或其他位置)?
  • 使用workbook_open sub强制加载外接程序是否被视为“错误做法”?

赞赏任何关于最佳实践的建议或指导。

编辑:我试图突出显示主要问题,请将子问题视为我对此主题的看法。

2 个答案:

答案 0 :(得分:1)

直到最近,我有几个外接程序位于共享驱动器上。我让用户使用“文件”-“选项”-“加载项”安装加载项,并写下了执行该操作的说明。共享驱动器上的副本为只读。对于更改,我将对计算机上的开发副本进行编码和测试,然后将其部署到共享驱动器。用户下次启动Excel时,更改将在那里。

然后,我们希望更多的人拥有该插件,并且并非所有人都可以访问此共享驱动器。同样,当人们离开网络时,人们抱怨它仍然试图连接到插件。所以我们走了一条不同的路线。

我们使用了一个名为PDQ Deploy的程序将插件添加到每个人的插件目录中,因此它们具有本地副本。我们还部署了一个脚本,该脚本将文件从公司范围的共享驱动器复制到其addins目录。如果他们没有连接到下一个工作,脚本将无提示地失败。最后,我们使用组策略来执行以下操作:1)创建用于安装插件的注册表项,以及2)创建一个计划任务,该任务每天晚上启动脚本。每天更新都是过分的,但是文件只有几kbs,所以我们顺其自然。

现在,我可以将新版本部署到公司范围内的共享驱动器上,并且每个人第二天(或返回网络的第二天)都会进行更改。

答案 1 :(得分:0)

我将vba内容放在“个人”工作簿(Windows菜单:“取消隐藏...”)上,无论我使用什么工作簿,都可以从那里使用它们。

您必须确保知道哪一个很受欢迎...