批量合并Excel文件(批量合并sheet)

批量合并Excel文件(批量合并sheet)

技术教程gslnedu2025-07-16 0:30:515A+A-

批量合并Excel文件

1、VBA

快捷键Alt+F11,需要保证需要合并的文件在同一个文件夹下,美中不足的地方是每个文件的表头都有保留,合并后需要进行删除。

Sub 合并当前目录下所有工作簿()
Dim Wb As Workbook
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xlsx")
AWbName = ActiveWorkbook.Name
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
c = ThisWorkbook.Sheets("sheet1").UsedRange.SpecialCells(xlCellTypeLastCell).Row
If c = 1 Then   '防止合并的工作簿第一行空着
c = 0
End If
ActiveSheet.UsedRange.Copy ThisWorkbook.Sheets("sheet1").Cells(c + 1, 1)  '合并工作簿
的第一个sheet名字为:sheet1
Wb.Close False
End If
MyName = Dir
 Loop
 Application.ScreenUpdating = True
 MsgBox "已完成"
End Sub

2、使用PowerQuery

2016版本以上可以使用,需要注意在合并文件夹外部新建的Excel文件。

点击数据--新建查询--从文件--从文件夹


将选中content字段使用删除列--删除其他列


添加列--添加自定义列,公式中填写= Excel.Workbook([Content],true)

content是插入的,true是绕开第一行的意思

点击确定

点击自定义字段右侧按钮,只勾选Data

继续点击右侧按钮点击确定

选中content列,删除列--删除列,下面截图圈错地方了,尴尬

看到中间有很多行是null,需要删除空行,点击删除行--删除空行

点击关闭并上载

可以选择保存数据的位置

最终呈现效果如下图

批量合并Excel中sheet文件

1、VBA

批量合并Excel中sheet文件,美中不足的地方是每个文件的表头都有保留,合并后需要进行删除。

Sub 合并当前工作簿下的所有工作表()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set st = Worksheets.Add(before:=Sheets(1))
st.Name = "合并"
For Each shet In Sheets:
If shet.Name <> "合并" Then
i = st.Range("A" & Rows.Count).End(xlUp).Row + 1
shet.UsedRange.Copy
st.Cells(i, 1).PasteSpecial Paste:=xlPasteAll
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "已完成"
End Sub


参考:如何快速将多个Excel表合并成一个?
https://zhuanlan.zhihu.com/p/378353419

史上最全!Excel 如何合并多个工作表或多个工作簿?
https://zixue.3d66.com/article/details_84761.html

#职场##职场干货##Excel##效率##工作#

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8