Chèn file vào 1 sheet

Hướng dẫn này chỉ ra 3 bước để giúp bạn ghép hoặc gộp nhiều file excel thành một file duy nhất, sử dụng một đoạn code VBA ngắn ngọn và công cụ sao chép Worksheet có sẵn trong Excel.

Việc xử lý dữ liệu trong một file excel duy nhất dễ dàng hơn rất nhiều thay vì phải liên tục chuyển đổi giữa các file, đồng thời giảm bớt thời gian cũng như tránh nhưng sai sót dữ liệu không mong muốn. Bạn có thể ứng dụng ghép file để thống kê thành quả công việc, quyết toán thu, chi của cơ quan mình trong một khoảng thời gian bất kỳ. Tuy nhiên, việc ghép nhiều file excel thành một file có thể khiến bạn mất nhiều thời gian nếu bạn không nắm được kỹ thuật.

Bây giờ, Blog share kỹ năng sẽ hướng dẫn bạn 3 bước để thực hiện việc này một cách đơn giản và hiệu quả. Cùng tìm hiểu cách làm ngay nhé!

Bài viết này có gì?

Cách ghép nhiều file excel thành một file duy nhất

Chèn file vào 1 sheet

Bài toán đặt ra như sau: Ta có 3 file Excel là danh sach khach hang thang 1.xls, danh sach khach hang thang 2.xls, danh sach khach hang thang 3.xls trong thư mục Content như hình trên. Yêu cầu cần gộp cả 3 file Excel này lại thành một file duy nhất. Để thực hiện thì các bạn hãy làm theo các 3 bước sau đây nhé:

Bước 1: Tạo một file Excel mới để ghép các file.

Đầu tiên, các bạn cần mở một file Excel mới lên. Sau đó các bạn chọn thẻ Developer trên thanh công cụ. Tiếp theo các bạn chọn Visual Basic tại mục Code. Hoặc các bạn cũng có thể sử dụng tổ hợp phím tắt Alt + F11 để mở cửa sổ VBA.

Nếu không thấy thẻ Developer, bạn có thể xem Hướng dẫn bật thẻ Developer trong Excel từ trang chủ của Microsoft

Chèn file vào 1 sheet

Bước 2: Sử dụng Trình soạn code VBA để thao tác

Tiếp theo, khi cửa sổ Microsoft Visual Basic for Applications hiện ra. Các bạn chọn thẻ Insert trên thanh công cụ. Thanh cuộn hiện ra thì các bạn chọn mục Module.

Chèn file vào 1 sheet

Bước 3: Dán mã code và thực hiện chạy ghép file

Ở màn hình này, hộp thoại Module hiện ra. Các bạn sao chép đoạn code dưới đây vào hộp thoại Module.

Chèn file vào 1 sheet

Sub copy()
Path = "K:\My Drive\Working\SHAREKYNANG\Content\"
Filename = Dir(Path & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.copy after:=ThisWorkbook.Sheets(1)
Next
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub

Sau đó các bạn nhấn Run trên thanh công cụ hoặc nhấn phím F5 để chạy mã code.

Lưu ý là đoạn Path = “ ” : Bên trong dấu ngoặc là đường dẫn của thư mục chứa các file bạn lưu. Và nhớ thêm dấu gạch “\” sau cùng đường dẫn để nó hiểu là 1 folder nhé.

Chỉ cần như vậy là tất cả file Excel trong thư mục Content đã được gộp lại thành một file Excel duy nhất. Bây giờ thì các bạn cần tiến hành chỉnh sửa dữ liệu trong file Excel mới cũng như nhấn Save để lưu lại file này.

Chèn file vào 1 sheet

Tổng kết:

Rất đơn giản đúng không bạn? Với cách sử dụng code VBA để gộp nhiều file Excel thành một file duy nhất này, kể cả bạn không quen với việc sử dụng code VBA cũng có thể thực hiện một cách đơn giản và hiệu quả được . Hy vọng bài viết sẽ hữu ích với các bạn trong quá trình làm việc.

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é.


Link hướng dẫn bằng video: https://www.youtube.com/watch?v=bazqfJGwLTM&t=130s


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.


Chèn file vào 1 sheet


Danh sách 1


Chèn file vào 1 sheet


Danh sách 2


Chèn file vào 1 sheet


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.


Chèn file vào 1 sheet


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

Chèn file vào 1 sheet


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


Chèn file vào 1 sheet


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


Chèn file vào 1 sheet


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


Chèn file vào 1 sheet


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


Chèn file vào 1 sheet


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


Chèn file vào 1 sheet


Chèn file vào 1 sheet


Chèn file vào 1 sheet


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


Chèn file vào 1 sheet


- 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é. 


Chèn file vào 1 sheet


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.


Chèn file vào 1 sheet


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 


Chèn file vào 1 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.