首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从多个Excel文档中导出VBA代码以放入版本控制

从多个Excel文档中导出VBA代码以放入版本控制
EN

Stack Overflow用户
提问于 2009-03-04 01:00:35
回答 4查看 11.1K关注 0票数 18

有人知道如何从大量Excel文档中导出VBA代码,以便将代码添加到subversion存储库中吗?而不必手动打开每个文档并导出代码。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-03-04 01:13:42

你可以在这里找到一个这样的工具:

http://www.pretentiousname.com/excel_extractvba/index.html

这是一个自动处理excel的VBS脚本。您可以根据需要对其进行修改-请注意,它并不完美(请阅读网页中的警告)。

代码语言:javascript
复制
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

票数 13
EN

Stack Overflow用户

发布于 2009-09-21 11:01:48

在过去的几年里,我成功地使用它导出并保存了我的代码。我可以确认它在Office 2003、2007中工作正常。我假设它在2000年也可以工作。

http://www.codeproject.com/KB/office/SourceTools.aspx

票数 6
EN

Stack Overflow用户

发布于 2009-03-04 07:21:22

当我进行大量的Excel VBA开发时,我养成了每次(从上下文菜单)进行更改时都将每个文件(模块等)导出为文本格式的习惯。我将这些文件和XLA二进制文件放在源代码控制中。这对我来说工作得很好,不需要任何外部工具。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/608872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档