如何將多個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
 

 

 

 

 

 

 

 

 

 

 

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