來源:微信公眾號(hào)表妹的EXCEL
關(guān)于跨工作表匯總數(shù)據(jù)的問題涨椒,表妹之前已經(jīng)介紹過很多方法了(推送43、推送46)绽媒。不過還有大批小伙伴在日常工作中蚕冬,經(jīng)常要面臨跨工作薄匯總數(shù)據(jù)的問題,所以今天表妹就通過萬能的VBA程序是辕,來給大家分享一下跨工作薄匯總數(shù)據(jù)的代碼囤热。少年,準(zhǔn)備接招吧~~
~~~~~~跨工作薄匯總的分割線~~~~~~
問題描述
已知各部門1月~6月的城市銷售數(shù)據(jù)(文件命名無規(guī)律获三,但數(shù)據(jù)格式相同)旁蔼,要求匯總上半年各部門的銷售額數(shù)據(jù)。具體情況如下圖:
解決方法
步驟1:新建文件夾疙教,命名“上半年”棺聊,將1月~6月數(shù)據(jù)放入其中;在文件夾外新建“啟用宏的工作薄”贞谓,命名“上半年匯總”(新建工作薄限佩,保存為啟用宏的工作薄)
步驟2:打開新建工作薄裸弦,編輯與被匯總數(shù)據(jù)一致的數(shù)據(jù)格式祟同;錄制宏--命名“匯總”--結(jié)束錄制--查看宏
步驟3:編輯“匯總”宏,添加VBA代碼理疙,保存并運(yùn)行宏
代碼如下:
Sub 匯總()
Dim x, y, z
Dim arr, brr(1 To5, 1 To5), i%, j%
Set x = CreateObject("Scripting.FileSystemObject")
Set y = x.getfolder(ThisWorkbook.Path & "\上半年\")
If y.Files.Count > 0 Then
Application.ScreenUpdating = False
For Each z In y.Files
Workbooks.Open (z)
arr = ActiveWorkbook.Worksheets(1).[B2:F6]
For i = 1 To5
For j = 1 To5
If IsNumeric(arr(i, j)) Then brr(i, j) = brr(i, j) + arr(i, j)
Next
Next
ActiveWorkbook.Close
Next
Application.ScreenUpdating = True
ThisWorkbook.Worksheets(1).[B2:F6] = brr
End If
End Sub
代碼替換參數(shù)解釋:
brr(1 To5, 1 To5):匯總數(shù)據(jù)區(qū)域(不包含標(biāo)題)有5行5列晕城;
\上半年\:被匯總數(shù)據(jù)位于“上半年”文件夾;
B2:F6:被匯總數(shù)據(jù)區(qū)域窖贤;
B2:F6:“上半年匯總”中匯總結(jié)果區(qū)域
通過VBA程序砖顷,只需要輕松3步走,就可以實(shí)現(xiàn)快速匯總多工作薄中的數(shù)據(jù)了赃梧,VBA代碼是不是很神奇呢滤蝠?勤奮好學(xué)的小伙伴,趕快復(fù)制粘貼代碼試試吧~~
如果你覺得表妹的分享內(nèi)容很實(shí)用槽奕,歡迎分享給其他小伙伴呦几睛,獨(dú)樂樂不如眾樂樂嘛!
關(guān)注微信公眾號(hào)“表妹的EXCEL”粤攒,每周一所森、三囱持、五獲取原創(chuàng)分享教程。加入“表妹的EXCELQQ群(345387282)”焕济,和勤奮好學(xué)的小伙伴們一起快樂地學(xué)習(xí)EXCEL吧纷妆!
本文已在版權(quán)印備案,如需轉(zhuǎn)載請(qǐng)?jiān)L問版權(quán)印14257715