如何编写VBA代码将多个Excel文件合并成一个文件?
时间: 2024-11-03 20:20:56 浏览: 58
在VBA中,你可以通过循环遍历指定目录下的所有Excel文件,并使用`ActiveWorkbook.Worksheets.Add`方法将它们逐一添加到一个新的工作簿中。下面是一个简单的步骤描述:
```vba
Sub MergeExcelFiles()
Dim DestWb As Workbook
Dim SourceWb As Workbook
Dim FileDir As String
Dim FileName As String
Dim ws As Worksheet
'指定源文件夹路径
FileDir = "C:\YourFolder\*.xlsx" '请替换为你想要合并的文件夹路径
'创建一个新的工作簿作为目标
Set DestWb = Workbooks.Add
'打开每一个源文件
Application.FileDialog(msoFileDialogFolderPicker).Show
If Len(DestWb.Path) > 0 Then
For Each FileName In Dir(FileDir)
Set SourceWb = Workbooks.Open(FileName)
'将每个源工作表复制到目标工作簿
For Each ws In SourceWb.Sheets
ws.Copy After:=DestWb.Sheets(DestWb.Sheets.Count)
Next ws
'关闭源文件,释放资源
SourceWb.Close SaveChanges:=False
Next FileName
'保存目标工作簿
DestWb.SaveAs Filename:="MergedFile.xlsx", FileFormat:=xlOpenXMLWorkbook
DestWb.Close
End If
End Sub
```
运行这段代码前,确保已经以管理员权限运行VBA,因为有些操作需要修改文件。
阅读全文