如何将多个Excel 表合并成一个

怎么把数据格式一样的表格汇总到一起?准备数据,业务报告汇总.xlsx是新建的一个空白的表格,sum文件夹里放的是需要汇总的数据格式是一模一样的,如下图:

 

分两种方法:

  一  excel图形化操作

1 业务报告汇总文件

2 点击数据--点击新建查询--点击从文件--选择从文件夹

3 点击浏览--选择需要合并的所有表格的文件夹--点击确定

4 选择加载合并数据或者合并并转换数据

5 合并文件点击确定

6 效果:

 二 利用代码的方式合并

  原理:就是先把多个excle表合并到一个excel文件的多个工作表中,再把多个Excel工作表合并为1个Excel工作簿

准备:

 

1 打开 业务报告汇总.xlsx--再Sheet1上右击鼠标--选择查看代码--进入vb编写界面

2 把下面代码(下面代码从网上覆制)复制到编辑器中,点击运行:

'功能:把多个excel工作簿的第一个sheet工作表合并到一个excel工作簿的多个sheet工作表,新工作表的名称等于原工作簿的名称
Sub AllSheets()
    '定义对话框变量
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    
    '新建一个工作簿
    Dim newwb As Workbook
    Set newwb = Workbooks.Add
    
    With fd
    If .Show = -1 Then
        '定义单个文件变量
        Dim vrtSelectedItem As Variant
        
    '定义循环变量
    Dim i As Integer
    i = 1
    '开始文件检索
    For Each vrtSelectedItem In .SelectedItems
        '打开被合并工作簿
        Dim tempwb As Workbook
         Set tempwb = Workbooks.Open(vrtSelectedItem)
         
        '复制工作表
        tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)
        
        '把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx
        newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "")
        '关闭被合并工作簿
        tempwb.Close SaveChanges:=False
        i = i + 1
        Next vrtSelectedItem
    End If
    End With
    
    Set fd = Nothing
End Sub

3 选择需要合并的文件,点击确定

 

4 得到的结果如图:

 

5 在Sheet1中执行下列代码即可


Sub sum()
Application.ScreenUpdating = False
    For j = 1 To Sheets.Count
        If Sheets(j).Name <> ActiveSheet.Name Then
            x = Sheet1.Range("A130000").End(xlUp).Row + 1
            Sheets(j).UsedRange.Copy Cells(x, 1)
        End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "亚麻,合并结束了!", vbInformation, "哈哈"
End Sub
 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章