用于VB代码和Excel的单独文件

时间:2012-04-22 15:32:04

标签: excel vba excel-vba

我正在使用Excel 2010.我有一些不时成长的后台代码(VBA)。我正在尝试找到一种将源代码与xls文件分开的方法,因此我可以比较代码更改。换句话说,我希望代码将在文本文件中,每次打开Excel文件时,都会从此文件中获取宏的源代码。

提前致谢!

4 个答案:

答案 0 :(得分:2)

在SO上查看this问题。

它提到了一个叫做SourceTools的插件,我用过&发现它值得。
此外,它还附带了源代码,因此可以对其进行修改,使其指向特定于您使用的源代码控制软件(如SVN)。

随意关闭此问题,因为我提供的链接与您的链接有相同的问题。回答我想你正在寻找的东西。

答案 1 :(得分:1)

查看适用于VBA的各种代码清洁应用程序/代码,例如:

http://www.appspro.com/Utilities/CodeCleaner.htm

除此之外,它们将模块/表单/类导出到文本文件,删除它们,然后将它们重新插入到项目中。

使用一些mod,这将成为你所追求的基础。

另一种可能性:我在Excel中做的不多,但如果其加载项的行为与PowerPoint中的加载项相同,那么这也可能有所帮助。在PPT中,安装的加载项在PowerPoint启动时自动加载,创建所需的任何用户界面,并可用于应用程序中的任何打开文件。要更新代码,请对其进行修改,创建新的加载项,将其放在PPT正在寻找的位置,然后重新启动PPT。 Voila ...所有PPT文件的代码都已更新。

答案 2 :(得分:1)

首先,谢谢大家的回答。我的解决方案是: 1.将所有模块导出到* .bas(每个模块一个文件)。 2.添加模块代码我的调用:

Application.VBE.ActiveVBProject.VBComponents.Import (filename)

为每个文件.. 3.完成后:

Set VBComp = VBProj.VBComponents(moduleName)
If Err.Number = 0 Then 'no error
    VBProj.VBComponents.Remove VBComp

删除模块,以便在退出之前不会将其保存在xls中

答案 3 :(得分:0)

会在这种情况下推荐手动流程。

假设您要备份Module1,然后右键单击它并点击“导出文件”。您将看到“导出文件”对话框。保存为,在相关位置说Module1 - 22 Apr - 2012.bas。而且你已经完成了

这有什么用?

1)文件名中的日期将告诉您备份的日期,以便您可以实际跟踪宏更改的日期。

2) .Bas文件可以使用记事本打开。这将帮助您将当前的VBA代码与相关的备份文件进行比较。

3)如果您想在特定日期检索备份,只需删除现有模块(如果需要,备份它 )然后点击“导入文件”并将其导入您的VBA。

enter image description here

HTH