从ms访问应用程序导出整个vba代码

Lam*_*fif 2 directory ms-access vba export file

我有一个ms访问应用程序(ms access 2013),我想将所有vba代码导出到文件夹中的单独文件

我可以添加什么代码来执行此操作?

谢谢,

dji*_*kay 6

试试这个:

Public Sub ExportVBAComponents()

  Dim wbPath As String
  Dim vbComp As Object
  Dim exportPath As String

  wbPath = ActiveWorkbook.Path

  For Each vbComp In ActiveWorkbook.VBProject.VBComponents
    exportPath = wbPath & "\" & vbComp.Name & Format$(Now, "_yyyymmdd_hhnnss")

    Select Case vbComp.Type
        Case 1 ' Standard Module
            exportPath = exportPath & ".bas"
        Case 2 ' UserForm
            exportPath = exportPath & ".frm"
        Case 3 ' Class Module
            exportPath = exportPath & ".cls"
        Case Else ' Anything else
            exportPath = exportPath & ".bas"
    End Select

    On Error Resume Next
    vbComp.Export exportPath
    On Error GoTo 0
  Next

End Sub
Run Code Online (Sandbox Code Playgroud)

上面的代码会将您的所有VBA组件/模块导出ActiveWorkbook到与工作簿相同的位置.它将使用组件名称作为文件名的一部分,并将添加时间戳.由于您有超过100个模块,因此最好更改导出路径以包含一个子文件夹,以便将它们组合在一起.

注意:要使其生效,您需要选择选项>信任中心>信任中心设置...>宏设置>信任对VBA项目对象模型的访问权限.否则你会For Each在行中出现一些随机错误.如果您担心,可以在之后勾选该选项.

  • @LamloumiAfif:实际上,在搜索它时,我意识到已经在这里得到了回答:[将MS Access表单和类/模块递归导出到文本文件?](http://stackoverflow.com/a/17362688/3593811)。您能看看它是否对您有用吗?似乎涵盖了所有基地。 (2认同)