首页 > 解决方案 > Excel 工作簿共享 VBA 函数的最佳方式

问题描述

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

背景: 随着时间的推移,我创建了几个 Excel 工作簿 (wbs),每个都有稍微不同的目的,最终基于我的用户定义函数和类模块的库(从现在开始:)。wbs 的“主”版本是受修订控制的。wbs被几个人使用。

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

此外,在每个 wb 中都有独特的功能,这些功能并不打算共享。但是,这些函数可能会使用library函数。

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

我的考虑/子问题

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

编辑:我试图强调主要问题,请将子问题视为我自己对该主题的想法。

标签: vbaexcelversion-control

解决方案


直到最近,我还有几个加载项位于共享驱动器上。我让用户使用文件 - 选项 - 插件安装插件,并编写了安装说明。共享驱动器上的副本是只读的。对于更改,我将在我的机器上的开发副本上进行编码和测试,然后将其部署到共享驱动器。下次用户启动 Excel 时,更改就会出现。

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

我们使用了一个名为 PDQ Deploy 的程序将插件放在每个人的插件目录中,这样他们就有了本地副本。我们还部署了一个脚本,将文件从公司范围的共享驱动器复制到他们的插件目录。如果他们没有连接到下一个作品,脚本就会默默地失败。最后,我们使用组策略 1) 创建注册表项以安装插件,以及 2) 创建一个计划任务,该任务每晚启动脚本。每天更新是多余的,但文件只有几个 kbs,所以我们就这么做了。

现在,我可以将新版本部署到公司范围内的共享驱动器,每个人都将在第二天(或他们回到网络后的第二天)看到更改。


推荐阅读