综合运用:
'Option Explicit
Sub 多表合并()
Dim i%, rs%, rss%, st As Worksheet, zst As Worksheet
Set zst = Sheets("1季度") '将汇总工作表"1季度"定义为变量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 '计算“1季度的最后一行的下一行”
st.Range("a2:b" & rs).Copy zst.Cells(rss, 1) '复制1-3表的数据到总表中
zst.Cells(rss, 3).Resize(rs - 1) = i & "月" '将1-3表的工作表名写入到总表对应的记录中
Next
End Sub
Sub 多表拆分()
For f = 1 To 3 '循环三次(只拆分三个月)
Worksheets.Add.Name = f & "月" '新建工作表,并以月份命名
For Each Rng In Sheets("总表").Range("a2:a15")
If Rng.Value = f & "月" Then '如果a列的值等于当前的月份
n = "a" & Rng.Row & ":d" & Rng.Row '构造被复制的源表区域
y = y + 1 '新表行数累计
If y = 1 Then
Sheets("总表").Range("a1:d1").Copy Sheets(f & "月").Cells(y, 1)
End If
Sheets("总表").Range(n).Copy Sheets(f & "月").Cells(y + 1, 1) '则将当前月份所在行复制到新建月份表中
End If
Next
y = 0 '分表行数累计归零
Next
End Sub