如何使用VBA代码进行版本控制?

时间:2010-06-08 11:54:12

标签: svn version-control vba

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

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

请帮帮我。

4 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:4)

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

  

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

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

VBA Sync Tool after selecting folder and file locations

如果要提取所有内容(通常用于设置存储库),只需单击确定即可。如果您想要更具选择性,可以取消删除特定文件(例如,您知道尚未更改的某些表单设计),然后继续。如果设置差异工具(在文件→设置下),则可以双击模块以查看其更改。

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

答案 2 :(得分:3)

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

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

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

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

答案 3 :(得分:2)

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