Trong bài viết này, bạn sẽ được hướng dẫn cách gộp nhiều tệp Excel thành một tệp duy nhất một cách chi tiết.
Để minh họa, chúng ta sẽ sử dụng hai tệp dữ liệu sau đây:
Tệp 1 có tên là DS_1 và chứa nội dung sau:

Tệp 2 mang tên DS_2 với nội dung sau:

Để hợp nhất dữ liệu từ cả hai tệp thành một tệp duy nhất có tên là Book1 (các bản ghi nằm trên cùng một Sheet), hãy thực hiện theo các bước sau:
Bước 1: Tạo một tệp Excel mới vớ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: Sao chép toàn bộ đoạn mã dưới đây vào Module 1.

Chức năng Gộp Tệp Excel:
Dim DanhSachTep
Dim x As Integer
On Error GoTo XuLyLoi
Application.ScreenUpdating = False
DanhSachTep = Application.GetOpenFilename _
(FileFilter:='Microsoft Excel Files (*.xlsx), *.xlsx', MultiSelect:=True, Title:='Chọn Tệp Tin để Gộp')
If TypeName(DanhSachTep) = 'Boolean' Then
MsgBox 'Không có Tệp Tin nào được chọn'
GoTo XuLyThoat
End If
x = 1
While x <= UBound(DanhSachTep)
Workbooks.Open Filename:=DanhSachTep(x)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
XuLyThoat:
Application.ScreenUpdating = True
Exit Sub
XuLyLoi:
MsgBox Err.Description
Resume XuLyThoat
End SubBước 3: Lưu Module 1 với tên là GopFileExcel (). Do Module chứa Macro nên khi lưu, có thông báo xuất hiện, hãy nhấn OK.

Bước 4: Thêm một Module mới bằng cách chọn Insert -> Module.

Bước 5: Sao chép toàn bộ đoạn mã dưới đây vào Module 2 -> lưu lại với tên là GopCacSheet ().

Chương trình Gộp Các Sheet:
Dim Bang As Worksheet
Application.ScreenUpdating = False
[A6].CurrentRegion.Offset(1, 1).ClearContents
For Each Bang In Worksheets
If Bang.Name <> 'Gop_File' Then
With [B65500].End(xlUp).Offset(1)
[A6].CurrentRegion.Offset(1, 1).Copy Destination:=.Offset(0)
End With
End If
Next Bang
Application.ScreenUpdating = True
Cột('E:E').Ẩn = False: Randomize
[A5].Resize(, 6).Interior.ColorIndex = 34 + 9 * Rnd() \ 1
End SubBước 6: Quay lại File Excel mới tạo -> Vào thẻ View -> View Marco.

Bước 7: Hộp thoại macro hiển thị -> chọn module 1 (tên GopFileExcel ()) -> Chạy.

Bước 8: Hộp thoại Duyệt xuất hiện, chọn đường dẫn tới các file dữ liệu cần gộp (ở đây là file DS_1 và DS_2) -> Mở.

Sau khi lựa chọn Mở dữ liệu từ 2 tệp tương ứng, ghi vào Sheet 2 và Sheet 3 trong tệp Book1. Bước cuối cùng là gộp tất cả các Sheet thành một Sheet duy nhất.
Bước 9: Mở thẻ Xem -> Xem Macro -> GopCacSheet () -> Chạy.

Tất cả dữ liệu từ 2 Sheet sẽ được hợp nhất vào Sheet 1. Lưu ý về số thứ tự, nếu không đúng, vui lòng nhập lại và điều chỉnh kích thước cột. Sau khi chỉnh sửa, kết quả như sau:

Chú ý:
- Sheet tổ hợp từ sheet2 và sheet 3 được đặt làm sheet 1.
- Áp dụng với số lượng file khác nhau, lưu ý rằng số lượng file càng lớn, tốc độ xử lý càng chậm.
- Trong quá trình gộp file dữ liệu, hạn chế sử dụng bất kỳ hàm dữ liệu nào có thể gây lỗi (do địa chỉ thay đổi). Nên sử dụng dữ liệu nhập đơn giản.
Chúc các bạn đạt được thành công!
