之前用Python写了一个excel多表汇总的代码,看着阅读量挺高的,这次就直接换成excel自带的宏写出多表汇总的功能吧
Sub ExtractDataFromMultipleFiles()
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Dim DestSheet As Worksheet
Dim LastRow As Long
Dim SrcWorkbook As Workbook
Dim DestWorkbook As Workbook
' 设置主要的目标工作簿
Set DestWorkbook = ThisWorkbook
Set DestSheet = DestWorkbook.Sheets("CombinedData")
' 选择包含要提取数据的文件夹
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "选择包含数据的文件夹"
.Show
If .SelectedItems.Count = 0 Then Exit Sub
FolderPath = .SelectedItems(1)
End With
' 循环遍历文件夹中的所有Excel文件
Filename = Dir(FolderPath & "\*.xls*")
Do While Filename <> ""
' 打开每个Excel文件
Set SrcWorkbook = Workbooks.Open(FolderPath & "\" & Filename)
' 循环遍历每个工作表
For Each Sheet In SrcWorkbook.Sheets
' 查找目标工作表的最后一行
LastRow = DestSheet.Cells(DestSheet.Rows.Count, "A").End(xlUp).Row
' 复制数据到目标工作表的下一行
Sheet.UsedRange.Offset(1).Copy DestSheet.Cells(LastRow + 1, 1)
Next Sheet
' 关闭源工作簿
SrcWorkbook.Close False
' 继续下一个文件
Filename = Dir
Loop
MsgBox "数据提取完成!", vbInformation
End Sub