成长路上除了 发表于 2019-6-20 17:30:00

按指定关键词,一键汇总Excel分表数据


有时候,我们有多个EXCEl工作表,要汇总各分表中相同的关键词,手工汇总费力又会遗漏,如何实现按指定关键词,一键汇总Excel分表数据。

动画视频VBA代码如下:
Sub collect()
    Dim sht As Worksheet, rng As Range, k&, trow&
    Application.ScreenUpdating = False
    '取消屏幕更新,加快代码运行速度
    temp = InputBox("请输入需要合并的工作表所包含的关键词:", "提醒")
    If StrPtr(temp) = 0 Then Exit Sub
    '如果点击了inputbox的取消或者关闭按钮,则退出程序
    trow = Val(InputBox("请输入标题的行数", "提醒"))
    If trow < 0 Then MsgBox "标题行数不能为负数。", 64, "警告": Exit Sub
    '取得用户输入的标题行数,如果为负数,退出程序
    Cells.ClearContents
    '清空当前表数据
    For Each sht In Worksheets
    '循环读取表格
      If sht.Name <> ActiveSheet.Name Then
      '如果表格名称不等于当前表名则……
            If InStr(1, sht.Name, temp, vbTextCompare) Then
         '如果表中包含关键词则进行汇总动作(不区分关键词字母大小写)
                Set rng = sht.UsedRange
                '定义rng为表格已用区域
                k = k 1
                '累计K值
                If k = 1 Then
                '如果是首个表格,则K为1,则把标题行一起复制到汇总表
                  rng.Copy
                  .PasteSpecial Paste:=xlPasteValues
                Else
                  '否则,扣除标题行后再复制黏贴到总表,只黏贴数值
                  rng.Offset(trow).Copy
                  Cells(ActiveSheet.UsedRange.Rows.Count 1, 1).PasteSpecial Paste:=xlPasteValues
                End If
            End If
      End If
    Next
    .Activate
    '激活A1单元格
    Application.ScreenUpdating = True
    '恢复屏幕刷新
End Sub

页: [1]
查看完整版本: 按指定关键词,一键汇总Excel分表数据