相信许多朋友都有碰到过,如何将一个工作簿中的工作表进行多表合并和拆分的难题。可能在数据少的时候,许多朋友就会直接想到干脆复制粘贴算了。少量数据的时候复制粘贴不失为一个好方法,但是当工作表较多的时候,就会显得非常低效率。今天我们就来通过两段代码,带大家来学习一下,如何快速的进行工作表的合并和拆分操作。
场景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
现在你知道了如何最快速度的合并和拆分表格了吗?