分享

汇总多个Excel数据表到一个sheet

 恶猪王520 2017-04-04


文件操作过程中,常常遇到如下几种情况,如果数据量小,靠copy即可操作,如果数据量大,那简单copy耗时且数据容易出错,以下案例会分别介绍。


  • 多个文件的第一个或多个sheet数据合并一个文件的一个sheet中。


  • 一个或多个文件的sheet数据复制到一个文件中。


  • 表内多个sheet汇总到一个Sheet。


案例展示
案例: 汇总多个EXCEL数据表格到一个sheet。



1. 打开要复制其他sheet进来的Excel的文件。

2. 按ALT+F11弹出代码编辑框。

3. 复制如下代码到编辑框中。

4. 点击运行按钮。


Sub CollectDataFromSplitExcel() '?¢D?1??úo?:Excel?°3???ó¢

   Dim i As Integer

   Dim FindDesk As FileDialog

   Dim strPath As String

   Dim temp_wb '用于打开待汇总的表

   Dim Endrow  '用于求待汇总表的最后一行

   

   Application.ScreenUpdating = False          '禁止刷新

   Set FindDesk = Application.FileDialog(msoFileDialogFolderPicker)

   

   If FindDesk.Show = -1 Then                  '选择文件夹

      strPath = FindDesk.SelectedItems(1)

      allfiles = Dir(strPath & '/' & '*xls*')  '设置文件目录

      ThisWorkbook.Worksheets(1).UsedRange.Clear  '清除汇总表的数据

      While allfiles <> ''                     '循环

          Set temp_wb = Application.Workbooks.Open(strPath & '/' & allfiles)  '打开文件

          

          For i = 1 To temp_wb.Sheets.Count

             Endrow = ThisWorkbook.Worksheets(1).Range('A100000').End(xlUp).Row

             temp_wb.Sheets(i).UsedRange.Copy Cells(Endrow + 1, 1)

          Next i

                   

           temp_wb.Close False

           Set temp_wb = Nothing  '清空参数

          allfiles = Dir         '设置文件目录

      Wend                       'While...wend

   End If

   

   Set FindDesk = Nothing        '清空参数

   Application.ScreenUpdating = True

  

End Sub

Excel职场精英

赛马场上,给你一把威猛的弓箭~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多