在VBA中将多个工作簿合并为一个工作簿,可以通过编写宏来实现。以下是一个基本的步骤指南,包括示例代码,帮助你完成这一任务。
以下是一个示例VBA代码,演示如何将指定文件夹中的所有Excel工作簿合并到一个新的工作簿中:
Sub MergeWorkbooks()
Dim FolderPath As String
Dim FileName As String
Dim SourceWB As Workbook
Dim TargetWB As Workbook
Dim SourceWS As Worksheet
' 设置目标工作簿为当前活动的工作簿
Set TargetWB = ActiveWorkbook
' 设置源文件夹路径(请根据实际情况修改)
FolderPath = "C:\Path\To\Your\Workbooks\"
' 获取文件夹中第一个Excel文件
FileName = Dir(FolderPath & "*.xlsx")
' 循环遍历文件夹中的所有Excel文件
Do While FileName <> ""
' 打开源工作簿
Set SourceWB = Workbooks.Open(FolderPath & FileName)
' 循环遍历源工作簿中的所有工作表
For Each SourceWS In SourceWB.Worksheets
' 复制工作表到目标工作簿
SourceWS.Copy After:=TargetWB.Sheets(TargetWB.Sheets.Count)
' 可选:重命名复制的工作表以避免重复
On Error Resume Next
TargetWB.Sheets(TargetWB.Sheets.Count).Name = SourceWS.Name
If Err.Number <> 0 Then
TargetWB.Sheets(TargetWB.Sheets.Count).Name = "Sheet" & TargetWB.Sheets.Count
End If
On Error GoTo 0
Next SourceWS
' 关闭源工作簿,不保存更改
SourceWB.Close SaveChanges:=False
' 获取下一个文件
FileName = Dir
Loop
MsgBox "所有工作簿已成功合并到当前工作簿中!"
End Sub
Alt + F11
打开VBA编辑器。插入
> 模块
。FolderPath
变量的值修改为你存放源工作簿的文件夹路径。Alt + F8
打开宏对话框,选择 MergeWorkbooks
,然后点击 运行
。.xlsx
格式,或者根据需要修改代码以支持其他格式(如 .xls
)。SheetX
形式。通过以上步骤和代码,你可以轻松地将多个工作簿合并为一个工作簿,提高工作效率。
领取专属 10元无门槛券
手把手带您无忧上云