工作簿多表合併、拆分操作,你花半小時複製粘貼,別人只用了十秒

2019-05-29     Excel函數與VBA實例

相信許多朋友都有碰到過,如何將一個工作簿中的工作表進行多表合併和拆分的難題。可能在數據少的時候,許多朋友就會直接想到乾脆複製粘貼算了。少量數據的時候覆制粘貼不失為一個好方法,但是當工作表較多的時候,就會顯得非常低效率。今天我們就來通過兩段代碼,帶大家來學習一下,如何快速的進行工作表的合併和拆分操作。

場景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

現在你知道了如何最快速度的合併和拆分表格了嗎?

更多技巧:

文章來源: https://twgreatdaily.com/zh-cn/PIIMtGwBvvf6VcSZhsAL.html