Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 从ms access应用程序导出整个vba代码_File_Vba_Ms Access_Export_Directory - Fatal编程技术网

File 从ms access应用程序导出整个vba代码

File 从ms access应用程序导出整个vba代码,file,vba,ms-access,export,directory,File,Vba,Ms Access,Export,Directory,我有一个ms access应用程序(ms access 2013),我想将所有vba代码导出到文件夹中的单独文件中 我可以添加什么代码来执行此操作 谢谢,试试这个: Public Sub ExportVBAComponents() Dim wbPath As String Dim vbComp As Object Dim exportPath As String wbPath = ActiveWorkbook.Path For Each vbComp In Active

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

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

谢谢,

试试这个:

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项目对象模型的信任访问。否则,每行的
中都会出现一些随机错误。如果您对此感到担心,您可以在之后勾选该选项。

您所说的单独文件是什么意思?如果你指的是每个模块,你能不能右键单击每个模块->导出并保存?或者使用VBA扩展性?是的,我可以这样做,但我有100多个模块@Jiminy Cricket我是VBA的初学者,那么你所说的VBA可扩展性是什么意思呢?可扩展性是指使用其他代码修改代码的方式。我希望此帮助信息表明未找到变量
ActiveWorkbook
@LamloumiAfif:啊,是的,我用从Excel导出模块来测试它。我不确定它的访问要求是什么(很久没有使用它了),我将尝试调查并返回给您。@LamloumiAfif:事实上,在搜索它时,我意识到它已经在这里得到了回答:。你能看看这对你是否有效吗?它似乎很好地涵盖了所有的基础。@DavidZemens:我的代码只是用于标准模块,你是对的。谢谢你的意见。我在前面的评论中链接的特定于Access的SO问题更为全面,可以处理所有类型的Access模块。请记住在VBE>工具>参考中参考/检查Microsoft Visual Basic For Applications Extensibility Library。