从 ms 访问应用程序导出整个 vba 代码 [重复]

Posted

技术标签:

【中文标题】从 ms 访问应用程序导出整个 vba 代码 [重复]【英文标题】:Exporting the whole vba code from an ms access application [duplicate] 【发布时间】:2014-09-06 22:57:39 【问题描述】:

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

我可以添加什么代码来做到这一点?

谢谢,

【问题讨论】:

单独的文件是什么意思?如果你指的是每个模块,你可以不只是右键单击每个模块 -> 导出并保存吗? 还是使用 VBA 扩展性? 是的,我可以这样做,但我有超过 100 个模块!! @Jiminy Cricket 我是 VBA 的初学者,那么 VBA 可扩展性是什么意思? 可扩展性是您使用其他代码修改代码的方式。 cpearson.com/excel/vbe.aspx希望对你有帮助 【参考方案1】:

试试这个:

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

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

注意:为此,您需要选择选项>信任中心>信任中心设置...>宏设置>信任对 VBA 项目对象模型的访问。否则你会在For Each 行中得到一些随机错误。如果您担心,可以在之后勾选该选项。

【讨论】:

表示没有找到变量ActiveWorkbook!! @LamloumiAfif:是的,我通过从 Excel 导出模块对其进行了测试。不知道 Access 的名称是什么(很久没用了),我会尝试调查并回复您。 @LamloumiAfif:实际上,在搜索它时,我意识到它已经在这里得到了回答:Exporting MS Access Forms and Class / Modules Recursively to text files?。你能看看,看看这是否适合你?它似乎很好地涵盖了所有基础。 @DavidZemens:我的代码只是用于标准模块,你是对的。谢谢您的意见。我在之前的评论中链接的 Access-specific SO question 更全面,可以处理各种 Access 模块。 记得在 VBE > 工具 > 参考中参考/检查 Microsoft Visual Basic For Applications Extensibility Library

以上是关于从 ms 访问应用程序导出整个 vba 代码 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

错误 3011 VBA 在访问中将所有表导出到 txt

使用VBA将VBA模块从Access项目导出到Excel项目

MS Access VBA 导出查询结果

使用 VBA 或 PowerShell 将所有 MS Access SQL 查询导出到文本文件

MS Word 中的 VBA 影响整个文档,而不仅仅是选择

访问 VBA 将 CSV 文件导出为 UTF-8