【问题标题】:How to use version control with VBA code?如何在 VBA 代码中使用版本控制?
【发布时间】:2011-03-01 03:11:22
【问题描述】:

我正在开发一个非常大的 VBA 应用程序。我想使用 SVN 来开发那个应用程序。

如何从 Excel 文档中拆分我的模块以及如何将我的模块分别上传到源代码管理?

请帮助我。

【问题讨论】:

  • 虽然这个问题是关于 SVN 的,而这个替代问题 (stackoverflow.com/questions/36024342/…) 是关于 Git 的,但他们都在问同样的问题:我如何批量导出/导入一堆 VBA 模块从/到工作簿。然后可以独立选择 VCS。

标签: svn version-control vba


【解决方案1】:

查看这个 excel 插件 https://github.com/hilkoc/vbaDeveloper

一旦您保存工作簿,它就会自动导出您的所有 vba 代码。当您打开工作簿时,您还可以轻松地再次导入它。这一切都很好。

作为奖励,它附带一个代码格式化程序,您可以在 vba 编辑器中运行,因此您可以在编写代码时格式化代码。

【讨论】:

    【解决方案2】:

    我编写了一个小工具来帮助将 VBA 代码置于版本控制之下,不需要 Excel 中的任何内容,或者将您锁定在任何特定的版本控制系统中。它可以将模块从 Office 文件中提取到文件夹中,也可以将模块从文件夹中发布到 Office 文件中。无论哪种情况,它都直接访问 Office 文件,而不是通过 Excel。可用on GitHub:

    Microsoft Office VBA 代码通常以二进制格式保存,因此很难进行适当的版本控制。 VBA 同步工具可在启用 VBA 的文件和文件夹之间同步宏,从而使用 Git、SVN、Mercurial 或任何其他 VCS 轻松进行版本控制。

    要开始,请选择从 Office 文件中提取 VBA 选项,然后选择您的存储库的位置(或您想要启动的位置)和 Office 文件。该工具将比较两个位置并显示所有差异:

    如果您想提取所有内容(通常用于设置存储库),只需单击 确定。如果您想更有选择性,您可以取消选中特定文件(例如您知道没有更改的某些表单设计),然后继续。如果你设置了一个差异工具(在文件→设置下),你可以双击一个模块来查看它的变化。

    合并后,按照相同的步骤进行操作,但选择将 VBA 发布到 Office 文件选项。当您点击ApplyOK时,该工具会将合并后的代码写入Office文件。

    【讨论】:

      【解决方案3】:

      使用文件->导出文件,您可以导出各个类。

      这是将模块分开的一种方式 - 临时或其他方式。

      完成后,您可以创建一个 SVN 存储库。我不会对此进行说明,因为它遍布互联网,但这里是一个起点:

      http://svnbook.red-bean.com/en/1.0/ch05s02.html

      【讨论】:

      【解决方案4】:

      查看this answer,了解如何自动将所有模块/表单/类提取到文本文件中。这将使它们在 SVN 中更易于管理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        • 2016-06-11
        • 1970-01-01
        相关资源
        最近更新 更多