相信許多朋友都有碰到過,如何將一個工作簿中的工作表進行多表合併和拆分的難題。可能在數據少的時候,許多朋友就會直接想到乾脆複製粘貼算了。少量數據的時候覆制粘貼不失為一個好方法,但是當工作表較多的時候,就會顯得非常低效率。今天我們就來通過兩段代碼,帶大家來學習一下,如何快速的進行工作表的合併和拆分操作。
場景1:十秒快速對工作表數據進行合併匯總
如上圖:我們已經整理好每個月的數據,現在需要將它匯總到第一季度的匯總表中,最快捷的方法就是用VBA代碼來操作,如下圖:
多表合併代碼如下:
Sub 多表合併()
Dim i%, rs%, rss%, st As Worksheet, ast As Worksheet
Set zst = Sheet4 '將匯總工作表第一季度定義為變量zst
For i = 1 To 3
Set st = Sheets(i & "月") '將1-3月的工作表定義為變量st
rs = st.UsedRange.Rows.Count '計算1-3月每個表的最後一行
rss = zst.UsedRange.Rows.Count + 1 '計算第一季度工作表的最後一行的下一行
st.Range("A2:B" & rs).Copy Cells(rss, 1) '複製1月、2月、3月每個工作表的數據到第一季度的匯總表中
Cells(rss, 3).Resize(rs - 1) = i & "月" '將1-3月工作表的工作嗎寫入到匯總表對應的月份當中
Next
End Sub
注意點:
對象變量進行賦值時需要用set。
操作方法:
1、按ALT+F11,進入代碼編輯窗口,粘貼輸入以下代碼即可;
2、代碼窗口點擊運行代碼將自動匯總數據。
3、如果你的月份是1月-10月,那麼代碼中的For i = 1 To 10。
場景2:十秒速實現對多個工作表進行拆分
如上圖,我們的工作簿中有1-4月每個月的數據,現在我們需要將每個月的工作表單獨分開出來作為一個工作簿,讓不同的人來核對對應月份的數據。效果圖如下圖:
多表拆分代碼如下:
Sub 拆分到工作簿2()
Dim wk As Workbook, ss$, k%
Application.DisplayAlerts = False
For Each sht In ThisWorkbook.Sheets
Set wk = Workbooks.Add
k = k + 1
ThisWorkbook.Sheets(k).Copy Workbooks(2).Sheets(1)
ss = ThisWorkbook.Path & "" & sht.Name & ".xlsx"
wk.SaveAs ss
wk.Close
Next
Application.DisplayAlerts = True
MsgBox "拆分工作簿完成!"
End Sub
現在你知道了如何最快速度的合併和拆分表格了嗎?