上一期我們講了在同一個工作簿內,將多個工作表內容彙總至新表。今天接著講一下將多個工作簿內的工作表(數量未知)彙總到一張總表。
例:文件夾下有若干個工作簿,每個工作簿內有若干張成績表,每張表格式相同,現在要求將它們彙總至一張新表。
現在,我們打開總表,輸入以下代碼
<code>Sub test()
Application.ScreenUpdating = False
Dim mR%
Dim n%
Dim wbName
Dim wb
n = 2 '數據從第二行開始複製,第一行為表頭
[2:65536].ClearContents '清空原內容
wbName = Dir(ThisWorkbook.Path & "\\*.xls*") '查找目錄下所有Excel文件
While wbName <> ""
If wbName <> ThisWorkbook.Name Then '如果文件不是當前總表,則打開她
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & wbName
Set wb = Workbooks(wbName)
For Each sht In wb.Sheets '遍歷原工作簿中的所有工作表
mR = sht.[A65536].End(xlUp).Row
sht.Range("B2:F" & mR).Copy ThisWorkbook.Sheets(1).Cells(n, 2) '數據複製到總表
n = n + mR - 1 '行號累加
Next
wb.Close False '不保存關閉原工作簿
Set wb = Nothing '釋放內存
End If
wbName = Dir '查找下一個Excel文件
Wend
ThisWorkbook.Sheets(1).Activate '激活當前總表
Range("A2:F" & (n - 1)).Sort [F1], Order1:=xlDescending '按F列(總分)倒序排序(從大到小)
[A2] = 1
[A2].AutoFill Destination:=Range("A2:A" & (n - 1)), Type:=xlFillSeries '填充序號
Application.ScreenUpdating = True
End Sub/<code>
最後,我們看一下效果
大家點擊下面鏈接可以查看我的其他文章哦!
。。。
喜歡的朋友記得點贊、轉發、關注哦,大家如果在Excel中遇到問題都可以找我交流,也可以在評論區或私信告訴我你想看到的VBA辦公教程,我將在下期分享給大家,以後不定期更新Excel VBA技巧!
閱讀更多 VBA編程開發 的文章