如果需要将多个宏vba代码从一个工作簿导出到另一个工作簿,则可以正常逐个复制它们。 但这将耗费时间,本文,我将讨论如何快速将所有宏从一个工作簿导出到另一个工作簿并将宏文件保存到特定文件夹。
使用VBA代码将所有宏从一个工作簿导出到另一个工作簿
使用VBA代码将所有宏从一个工作簿导出到另一个工作簿
要将所有宏vba代码从一个Excel文件导出到另一个Excel文件,请执行以下步骤:
1。 首先,您应该同时打开两个工作簿,一个包含宏,另一个是您要导出宏的工作簿,请参见屏幕截图:
2。 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。
3。 点击 插页 > 模块, 并将以下宏粘贴到 模块 窗口。
VBA代码:将所有宏从一个工作簿导出到另一个工作簿:
Sub ExportAndImportModule()
Dim xStrSWSName, xSreDWSName As String
Dim xSWS, xDWS As Workbook
xStrSWSName = "old-workbook"
xSreDWSName = "new-workbook"
Dim xFilePath As String
Dim xObjFD As FileDialog
Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)
With xObjFD
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
xFilePath = .SelectedItems.Item(1)
Else
Exit Sub
End If
End With
On Error GoTo Err1
Set xSWS = Workbooks(xStrSWSName & ".xlsm")
Set xDWS = Workbooks(xSreDWSName & ".xlsm")
Set xvbap = xSWS.VBProject
Set xVBC = xvbap.VBComponents
For Each Module In xSWS.VBProject.VBComponents
If Module.Type = vbext_ct_StdModule Then
Module.Export (xFilePath & "" & Module.Name & ".bas")
xDWS.VBProject.VBComponents.Import (xFilePath & "" & Module.Name & ".bas")
End If
Next Module
Exit Sub
Err1:
MsgBox "come to nothing!"
End Sub
注意:在上面的代码中,“旧的工作簿“是要从中导出宏的工作簿的名称,”新的工作簿“是您要导入宏的工作簿。 您应该将名称更改为您自己的名称。 这两本工作簿都应该是 XLSM 文件格式。
4。 粘贴上面的代码后,按 F5 运行这个代码的关键,和一个 浏览 窗口显示,请选择一个文件夹放置导出的宏文件,见截图:
5。 然后点击 OK 按钮,并且所有宏已从指定的工作簿导出到另一个Excel文件,并且宏文件也已保存到特定文件夹中。 查看截图:
注意:此代码只能从正常模块导出宏。 |