24 tháng 2, 2020

Cách ghép nhiều file Excel thành 1 File

Nếu bạn là một nhân viên kế toán, thủ quỹ hoặc thường xuyên phải làm công tác thống kê thì chắc hẳn hay phải tổng hợp các báo cáo, danh sách ...... từ các phòng ban khác thành 01 file tổng đúng không. Nếu thao tác 1 cách thủ công (copy - paste) thì rất mất thời gian. Hãy áp dụng thủ thuật sau đây để tạo file tổng một cách nhanh chóng, tiện lợi nhé.

Giả sử mình có 2 danh sách nhân viên như hình dưới, bạn nên cho vào cùng 1 thư mục để dễ thao tác.


Danh sách 1


Danh sách 2


Cách 1: Sử dụng code VBA

Bước 1: Bạn tạo thêm 01 file đặt tên là Danh sách tổng, mở file đó ra, bấm tổ hợp phím Alt + F11 (đối với Laptop là Fn + Alt +F11). Chọn tab Insert rồi chọn Module.



Bước 2: Bạn dán đoạn code sau vào Module đó rồi Save lại.
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: Bạn tiếp tục tạo 1 module mới rồi dán đoạn code dưới đây vào và Save lại.
Sub gopsheet()
  Dim J As Integer
  On Error Resume Next
  Sheets(1).Select
  Worksheets.Add
  Sheets(1).Name = "Combined"
  Sheets(2).Activate
  Range("A1").EntireRow.Select
  Selection.Copy Destination:=Sheets(1).Range("A1")
  For J = 2 To Sheets.Count
  Sheets(J).Activate
  Range("A1").Select
  Selection.CurrentRegion.Select
  Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
  Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
  Next
End Sub


Bước 4: Bạn thoát trình VBA, quay trở lại file Excel, chọn tab View => View Macros



Bước 5: Chọn dòng GopFileExcel rồi click chọn Run



Bước 6: Chọn những file cần gộp rồi click Open.



- Hệ thống sẽ gộp các file Excel con vào các Sheet trong file Tổng. 





Bước 7: Thao tác lại giống bước 5 nhưng chọn dòng gopsheet nhé. 



- Hệ thống sẽ gộp các Sheet lại thành 01 Sheet tổng hợp. Bạn căn chỉnh lại cho phù hợp nhé. 



Cách 2: Sử dụng tính năng Move or copy

Với cách này bạn có thể sao chép Sheet từ file này thành 1 Sheet của file khác. Ví dụ mình sẽ sao chép Sheet 1 của Danh sách 2 Vào file Danh sách 1

Bước 1: Mở Danh sách 2, click chuột phải vào Sheet 1 rồi chọn Move or copy. Nếu muốn chọn nhiều Sheet thì bạn giữ Ctrl hoặc Shift rồi click chuột trái để chọn.



Bước 2
- Tại dòng To book, chọn Danh sach 1
- Trong phần Before sheet thì bạn chọn vị trí Sheet 



Sau khi gộp thì các file Excel sẽ thành các Sheet trong file Tổng. Bạn có thể áp dụng code gộp sheet vào cách 2 cho hoàn thiện.

Lời kết: Thủ thuật này khá đơn giản đúng không, hy vọng bài viết này hữu ích đối với các bạn.

SHARE THIS

Blogger Nguyễn Dương

Có một câu nói mà mình rất thích đó là "Thật sai lầm khi nghĩ rằng một khi rời khỏi trường học, bạn không cần học thêm điều mới nữa". Chính vì thế mà hãy luôn luôn học hỏi, con người chỉ ngừng phát triển khi ngừng học hỏi. Nếu như bạn chưa hiểu nội dung bài viết hoặc đang khúc mắc khi thao tác thì hãy bình luận phía dưới bài viết để mọi người cùng thảo luận nhé!