合并多个EXCEL文件的宏代码
时间: 2023-08-05 10:03:06 浏览: 429
以下是一个示例的VBA宏代码,可以合并多个Excel文件的数据到一个文件:
```vba
Sub MergeExcelFiles()
Dim Path As String
Dim FileName As String
Dim CurrentWorkbook As Workbook
Dim SourceWorkbook As Workbook
Dim ws As Worksheet
' 设置目标文件路径和名称
Path = "目标文件路径\"
FileName = "目标文件名.xlsx"
' 创建一个新的工作簿作为目标文件
Set CurrentWorkbook = Workbooks.Add
' 循环遍历要合并的文件
' 可以根据需要修改文件路径和名称的规则
' 这里假设要合并的文件都在同一个文件夹中
FileName = Dir("要合并的文件夹路径\*.xlsx")
Do While FileName <> ""
' 打开要合并的文件
Set SourceWorkbook = Workbooks.Open("要合并的文件夹路径\" & FileName)
' 循环遍历要合并的工作表
For Each ws In SourceWorkbook.Worksheets
' 将工作表复制到目标工作簿中
ws.Copy After:=CurrentWorkbook.Sheets(CurrentWorkbook.Sheets.Count)
Next ws
' 关闭当前的源工作簿,继续下一个文件
SourceWorkbook.Close SaveChanges:=False
FileName = Dir
Loop
' 删除目标工作簿中默认创建的第一个空白工作表
Application.DisplayAlerts = False
CurrentWorkbook.Sheets(1).Delete
Application.DisplayAlerts = True
' 保存目标工作簿
CurrentWorkbook.SaveAs Path & FileName
CurrentWorkbook.Close SaveChanges:=False
MsgBox "合并完成!"
End Sub
```
使用该宏代码时,请按照以下步骤操作:
1. 将要合并的Excel文件放置在同一个文件夹中。
2. 打开一个新的Excel文件,按下 `ALT + F11` 打开VBA编辑器。
3. 在VBA编辑器中,插入一个新的模块(Insert -> Module)。
4. 将以上代码复制粘贴到新模块中。
5. 修改代码中的目标文件路径和名称,确保目标文件不存在,以免覆盖已有文件。
6. 按下 `F5` 运行宏代码。
完成上述步骤后,宏将会逐个打开要合并的Excel文件,并将每个文件中的工作表复制到目标工作簿中。最后,目标工作簿将被保存在指定的路径和名称下,并关闭。
请注意,在使用宏代码前,请务必备份您的文件,以防不可预知的错误。希望这能帮到您!如果有任何进一步的问题,请随时提问。
阅读全文