有人知道如何从大量Excel文档中导出VBA代码,以便将代码添加到subversion存储库中吗?而不必手动打开每个文档并导出代码。
发布于 2009-03-04 01:13:42
你可以在这里找到一个这样的工具:
http://www.pretentiousname.com/excel_extractvba/index.html
这是一个自动处理excel的VBS脚本。您可以根据需要对其进行修改-请注意,它并不完美(请阅读网页中的警告)。
option explicit
Const vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Const vbext_ct_MSForm = 3
Const vbext_ct_StdModule = 1
Main
Sub Main
Dim xl
Dim fs
Dim WBook
Dim VBComp
Dim Sfx
Dim ExportFolder
If Wscript.Arguments.Count <> 1 Then
MsgBox "As the only argument, give the FULL path to an XLS file to extract all the VBA from it."
Else
Set xl = CreateObject("Excel.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
xl.Visible = true
Set WBook = xl.Workbooks.Open(Trim(wScript.Arguments(0)))
ExportFolder = WBook.Path & "\" & fs.GetBaseName(WBook.Name)
fs.CreateFolder(ExportFolder)
For Each VBComp In WBook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
On Error Resume Next
Err.Clear
VBComp.Export ExportFolder & "\" & VBComp.Name & Sfx
If Err.Number <> 0 Then
MsgBox "Failed to export " & ExportFolder & "\" & VBComp.Name & Sfx
End If
On Error Goto 0
End If
Next
xl.Quit
End If
End Sub
-Adam
发布于 2009-09-21 11:01:48
在过去的几年里,我成功地使用它导出并保存了我的代码。我可以确认它在Office 2003、2007中工作正常。我假设它在2000年也可以工作。
发布于 2009-03-04 07:21:22
当我进行大量的Excel VBA开发时,我养成了每次(从上下文菜单)进行更改时都将每个文件(模块等)导出为文本格式的习惯。我将这些文件和XLA二进制文件放在源代码控制中。这对我来说工作得很好,不需要任何外部工具。
https://stackoverflow.com/questions/608872
复制相似问题