举个例子,
如下图所示。一个工作簿包含了多张工作表,每张工作表的标题行数和排列顺序是相同的,不过数据区域可能包含合并单元格……
image
使用以下代码可以将多表数据汇总,并保留源表的合并单元格格式等。
Sub GetShData1()
Dim sht As Worksheet, rng As Range
Dim k As Long, intLastRow As Long
With Application '取消屏幕刷新等
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
Cells.Clear '清空数据
For Each sht In Worksheets '遍历表
If sht.Name <> ActiveSheet.Name Then
Set rng = sht.UsedRange '已使用单元格区域
If IsEmpty(rng) = False Then '判断是否空表
k = k + 1 '计数器
If k = 1 Then
rng.Copy Range("a1") '复制粘贴数据
Else
intLastRow = Cells.Find("*", _
LookIn:=xlFormulas, SearchOrder:=xlByRows, _
SearchDirection:=xlP