临下班前,公司老板突然“活跃”起来:
照例举个栗子,如下图,一个工作簿,包含多个工作表,现在需要将各个分表的数据汇总到总表中……
有很多很多的粉丝都在询问这样的问题,有些人会想到使用数据透视表或者合并计算等方式进行操作。但是呢?这两种操作方式都有它的局限性,稍有不足。比如存在合并单元格时,它们也就无能无力了。
但是如果我们使用代码来完成,那么就非常简单,您只需拿过去用即可:代码的操作动画如下:
源代码如下:
Sub CollecSht()
Dim Sht As Worksheet, Rng As Range, k&, Trow&
Trow = Val(InputBox('请输入标题的行数', '提醒'))
If Trow < 0 Then MsgBox '标题行数不能为负数。', 64, '警告': Exit Sub
Application.ScreenUpdating = False
Cells.ClearContents
Cells.NumberFormat = '@'
For Each Sht In Worksheets
If Sht.Name <> ActiveSheet.Name Then
Set Rng = Sht.UsedRange
k = k + 1
If k = 1 Then
Rng.Copy
Range('A1').PasteSpecial Paste:=xlPasteValues
Else
Rng.Offset(Trow).Copy
Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1).PasteSpecial Paste:=xlPasteValues
End If
End If
Next
Range('a1').Activate
Application.ScreenUpdating = True
MsgBox '一共汇总了' & k & '个表格。'
End Sub
联系客服