Hướng dẫn gộp nhiều file Excel thành 1 File
Bài viết dưới đây hướng dẫn chi tiết cách gộp nhiều file Excel thành 1 file duy nhất.
Ví dụ có 2 file dữ liệu sau:
File 1 tên DS_1 có nội dung:
File 2 tên DS_2 có nội dung:
Muốn tổng hợp dữ liệu từ 2 file trên thành 1 file dữ liệu duy nhất đặt tên Book1 (các bản ghi nằm cùng trên 1 Sheet) các bạn làm như sau:
Bước 1: Tạo 1 file Excel mới tên là Book1 -> nhấn tổ hợp phím Alt + F11 -> cửa sổ xuất hiện -> Chọn thẻ Insert -> Module.
Bước 2: Copy toàn bộ đoạn code sau vào Module 1.
Sub GopFileExcel() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xlsx), *.xlsx", MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "No Files were selected" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub
Bước 3: Save Module 1 đặt tên GopFileExcel (). Vì Module có chứa Macro nên khi lưu có cảnh báo bạn kích chọn OK nhé.
Bước 4: Tạo thêm 1 Module kích chọn Insert -> Module.
Bước 5: Copy toàn bộ đoạn code sau vào module 2 -> lưu lại đặt tên GopCacSheet ().
Sub GopCacSheet() Dim Sh As Worksheet Application.ScreenUpdating = False [A6].CurrentRegion.Offset(1, 1).ClearContents For Each Sh In Worksheets If Sh.Name <> "Gop_File" Then With [B65500].End(xlUp).Offset(1) [A6].CurrentRegion.Offset(1, 1).Copy Destination:=.Offset(0) End With End If Next Sh Application.ScreenUpdating = True Columns("E:E").Hidden = False: Randomize [A5].Resize(, 6).Interior.ColorIndex = 34 + 9 * Rnd() \ 1 End Sub
Bước 6: Quay trở lại File Excel vừa tạo -> Vào thẻ View -> View Marco.
Bước 7: Hộp thoại macro xuất hiện -> chọn module 1 (tên GopFileExcel ()) -> Run.
Bước 8: Hộp thoại Browse xuất hiện chọn đường dẫn tới các file dữ liệu cần gộp (ở đây file DS_1 và DS_2) -> Open.
Sau khi chọn Open dữ liệu từ 2 file tương ứng ghi vào sheet 2 và sheet 3 trong file Book1. Việc cuối cùng gộp các Sheet thành 1 Sheet duy nhất.
Bước 9: Vào thẻ View -> View Macro -> GopCacSheet () -> Run.
Tất cả dữ liệu ở 2 Sheet gộp vào Sheet 1. Lưu ý về số thứ tự chưa đúng các bạn cần nhập lại và căn chỉnh kích thước các cột. Sau khi chỉnh sửa kết quả:
Chú ý:
- Sheet gộp sheet2, sheet 3 là sheet 1.
- Áp dụng với số lượng các file khác nhau lưu ý số file càng lớn tốc độ xử lý càng chậm.
- Trong quá trình gộp file dữ liệu không nên sử dụng bất kì hàm dữ liệu nào sẽ gây ra lỗi (vì địa chỉ thay đổi). Nên dùng dữ liệu nhập đơn thuần.
Chúc các bạn thành công!
Xin chào! Cho mình hỏi: Tại sao thực hiện đến bước 8, hộp thoại Browse lại không xuất hiện các file dữ liệu cần gộp (ở đây ví dụ file DS_1 và DS_2) mà chỉ xuất hiện file Book 1 như ở hướng dẫn. Nhờ chương trình chỉ giúp là mình đã thực hiện sai ở thao tác nào nhé. Cảm ơn.
Hi cả nhà, Em sử dụng code và làm như bài viết tuy nhiên không run được (không cho run) Em đã xóa file và làm lại từ đầu nhiều lần nhưng vẫn không được. Khi qua máy tính của người khác thì làm được, cả nhà bắt bệnh giúp em ah Mong phản hồi sớm của cả nhà Em cám ơn nhiều.
Xin chào! Cho mình hỏi: Tại sao thực hiện đến bước 8, hộp thoại Browse lại không xuất hiện các file dữ liệu cần gộp (ở đây ví dụ file DS_1 và DS_2) mà chỉ xuất hiện file Book 1 như ở hướng dẫn. Nhờ chương trình chỉ giúp là mình đã thực hiện sai ở thao tác nào nhé. Cảm ơn.
Chào các bạn! Reply có thể quá muộn nhưng hi vọng sẽ hữu ích cho các bạn sau này cần. các bạn lỗi ở bước 8 là do sai cấu trúc tên file excel. Nó nôm na là sai tên. Trong code để cấu trúc là *.xlsx nhưng file của các bạn lại là .xls nên ko thấy là phải. Chỉ cần sửa đoạn này: xóa 2 chữ x sau cùng của *.xlsx FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xls), *.xls", MultiSelect:=True, Title:="Files to Merge")
Sao mình làm đến bước gộp sheet thì không hiện gì, chỉ thấy 1 dòng màu hiện ra ở Sheet 1???
Mình cũng bị giống bạn Nguyễn Phúc gộp file được nhưng gộp sheet không được chỉ hiện hàng đầu tiên hoặc hàng màu ( mình để trỏ chuột ở A1 sheet 1 trống khi chạy gộp sheet)