我正在使用 Excel 2010。我在后台 (VBA) 中有一些代码,这些代码不时增长。我正在尝试找到一种将源代码与 xls 文件分开的方法,以便我可以比较代码更改。换句话说,我希望代码在一个文本文件中,并且每次我打开 Excel 文件时,都会从这个文件中获取宏的源代码。
提前致谢!
看看这个关于 SO 的问题。
它提到了名为 SourceTools 的插件,我已经使用并发现它值得。
此外,它附带源代码,因此可以对其进行修改以将其指向特定于您使用的源代码控制软件(例如 SVN)。
请随意关闭此问题,因为我提供的链接与您的问题相同,并回答了我认为您正在寻找的问题。
查看可用于 VBA 的各种代码清理应用程序/代码,例如:
http://www.appspro.com/Utilities/CodeCleaner.htm
除其他外,这些将模块/表单/类导出到文本文件,删除它们,然后将它们重新插入到您的项目中。
使用一些模组,这将构成您所追求的基础。
另一种可能性:我在 Excel 中做的不多,但如果其加载项的行为类似于 PowerPoint 中的加载项,那也可能会有所帮助。在 PPT 中,已安装的加载项会在 PowerPoint 启动时自动加载,创建所需的任何用户界面,并可用于应用程序中的任何打开文件。要更新代码,你修改它,创建一个新的插件,把它放在 PPT 寻找它的任何地方,然后重新启动 PPT。瞧……所有 PPT 文件的代码都已更新。
首先,谢谢大家的回答。我的解决方案是: 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 中
在这种情况下,我会推荐一个手动过程。
假设您要备份Module1
,然后右键单击它并单击“导出文件”。您将看到一个“导出文件”对话框。将其另存为,例如Module1 - 22 Apr - 2012.bas
在相关位置。你完成了
这有什么帮助?
1)文件名中的日期将告诉您备份的日期,以便您实际跟踪宏更改的日期。
2) .Bas
文件可以用记事本打开。这将帮助您将当前的 VBA 代码与相关的备份文件进行比较。
3)如果您想在任何时候从特定日期检索备份,只需删除现有模块(如果需要,请对其进行备份),然后单击“导入文件”并将其导入您的 VBA。
高温高压