• 注册
  • 推广免费拿钻石

    • 查看作者
    • Excel办公应用:多个表中的数据汇总到一个表中 图文

      在工作中,我们经常需要把多个表中的数据汇总到一个表中。

      这必须考虑以下三种情况:

      情况一:多个表在同一工作簿中,表的结构相似,表头内容顺序一致

      解决方案:使用函数公式完成

      具体方法,如下动图演示:

      重点:在“总销售额”表单中的"B2"单元格中,输入公式【=SUM(华北区:华南区!B2)】

      情况二:多个表在同一工作簿中,表的结构相似,表头内容顺序不一致

      解决方案:使用【数据】-【合并计算】完成

      具体方法,如下动图演示:

      情况三:多个表不在同一工作簿中,表的结构和表头内容可随意。

      解决方案:使用VBA代码完成

      具体方法,如下代码:

      Sub CombineWbs()

      Dim bt As Range, r As Long, c As Long

      r = 1

      c = 7

      Dim wt As Worksheet

      Set wt = ThisWorkbook.Worksheets(1)

      wt.Rows(r + 1 & ":1048576").ClearContents

      Application.ScreenUpdating = False

      Dim FileName As String, sht As Worksheet, wb As Workbook, WbN As String

      Dim Erow As Long, fn As String, arr As Variant, Num As Long

      FileName = Dir(ThisWorkbook.Path & "*.xlsx")

      Num = 0

      Do While FileName <> ""

      If FileName <> ThisWorkbook.Name Then

      Erow = wt.Range("A1").CurrentRegion.Rows.Count + 1

      fn = ThisWorkbook.Path & "" & FileName

      Set wb = GetObject(fn)

      Set sht = wb.Worksheets(1)

      Num = Num + 1

      arr = sht.Range(sht.Cells(r + 1, "A"), sht.Cells(1048576, "B").End(xlUp).Offset(0, 7))

      wt.Cells(Erow, "A").Resize(UBound(arr, 1), UBound(arr, 2)) = arr

      WbN = WbN & Chr(13) & wb.Name

      wb.Close False

      End If

      FileName = Dir

      Loop

      Application.ScreenUpdating = True

      MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"

      End Sub

      温馨提醒(针对情况三):

      ⓵把以上代码,复制到Thisworkbook代码窗口中(即:按【Alt+F11】组合键,打开VBE编辑环境),然后点击【运行】命令,就可以快速实现上述功能了;

      ⓶需要合并的工作簿和存储汇总数据的活动工作簿,二者需要在同一文件夹下;

      ⓷本案例,假定工作表总列数为7。需要更改列数时,只需更改代码中对应的参数设置。

      点击【运行】命令后,会弹出如下对话框(仅举例说明):

      最后,点击【OK】,即可。

    • 0
    • 0
    • 0
    • 10
    • 单栏布局 侧栏位置: