将多个excel合并成一个excel vba
时间: 2023-07-07 13:28:06 浏览: 249
将多个excel合并为一个
您好!要将多个Excel文件合并成一个Excel文件,可以使用VBA编写脚本来实现。以下是一个示例代码,您可以根据自己的需求进行修改:
```
Sub MergeExcelFiles()
Dim path As String, fileName As String, sheet As Worksheet, total As Integer
Dim r As Range, cell As Range, row As Range, col As Range
'设置合并后的文件名和路径
path = "C:\合并后的文件.xlsx"
fileName = Dir("C:\需要合并的文件夹\*.xlsx")
total = 0
'打开第一个文件
Do While fileName <> ""
Workbooks.Open fileName:= "C:\需要合并的文件夹\" & fileName, ReadOnly:=True
For Each sheet In ActiveWorkbook.Sheets
'复制每个工作表的内容到新的工作表
sheet.Copy After:=ThisWorkbook.Sheets(1)
Next sheet
'关闭当前工作簿
Workbooks(fileName).Close
'获取下一个文件名
fileName = Dir()
total = total + 1
Loop
'删除新工作表中的所有空行
For Each row In ActiveSheet.UsedRange.Rows
If Application.CountA(row) = 0 Then row.Delete
Next row
'删除新工作表中的所有空列
For Each col In ActiveSheet.UsedRange.Columns
If Application.CountA(col) = 0 Then col.Delete
Next col
'保存合并后的文件
ActiveWorkbook.SaveAs Filename:=path, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
MsgBox "共合并了 " & total & " 个Excel文件。"
End Sub
```
在这个示例代码中,我们将需要合并的Excel文件放在一个文件夹中,然后通过循环读取文件夹中的每个Excel文件,将每个工作表的内容复制到新的工作表中。然后,我们删除新工作表中的所有空行和空列,最后将新工作表保存为一个文件。
请注意,在运行代码之前,请确保将“合并后的文件名和路径”和“需要合并的文件夹”更改为您的实际路径和文件名。另外,该代码适用于Excel 2007及以上版本。如果您使用的是较早的版本,请将“xlOpenXMLWorkbook”更改为适当的文件格式。
阅读全文