Cách tổng hợp từ nhiều Sheet vào một Sheet trong Excel

Khi thống kê, người dùng có thói quen chia nhỏ dữ liệu thành từng Sheet theo khoảng thời gian hay theo tiêu chí phân loại đặc thù. Tuy nhiên khi cần tổng hợp và phân tích số liệu, người dùng cần phải gộp các Sheet vào thành một trang tính để dễ dàng tính toán và phân tích hơn. Hầu hết người dùng sẽ sử dụng công cụ cắt, dán để tổng hợp các sheet, tuy nhiên thì việc làm này khiến cho mất nhiều thời gian và có thể dẫn đến sai sót nếu người dùng sao chéo thừa, hoặc thiếu một trường thông tin nào đó. Hôm nay Thủ Thuật 123 sẽ hướng dẫn các bạn cách tổng hợp từ nhiều Sheet vào một Sheet trong Excel bằng công cụ VBA.

Cách tổng hợp từ nhiều Sheet vào một Sheet trong Excel

Bật thẻ Developer trên Ribbon

Để sử dụng lệnh Marco hay VBA, trước tiên bạn phải khởi tạo thẻ Developer trên thanh Ribbon. Nếu như Excel của bạn đã bật thẻ Developer rồi thì bỏ qua bước này.

Bước 1: Vào File chọn Options.

Chọn Options

Bước 2: Cửa sổ Excel Options hiện ra => Chọn dòng Customize Ribbon (1) --> Tích vào Developer (2) => Nhấn nút OK (3).

Tích vào Developer

Thẻ Developer đã xuất hiện trên Ribbon. Giờ đây bạn có thể dùng Macro cho excel.

Thẻ Developer xuất hiện trên Ribbon

Sử dụng mã VBA để tổng hợp nhiều Sheet thành 1 Sheet

Ví dụ bạn có bản danh sách học sinh các lớp của trường A, bạn cần tổng hợp chúng vào một Sheet.

Bước 1: Mở cửa sổ Microsoft Visual Basic for Applications  (VBA) bằng cách nhấn tổ hợp phím Alt + F11.

Bước 2: Cửa sổ VBA xuất hiện. Nhấn chuột vào nút Insert (1) => Chọn Module (2).

Chọn Module

Bước 3: Dán đoạn mã sau vào cửa sổ Module.

  Sub Combine()
  Dim J As Integer
  On Error Resume Next
  Sheets(1).Select
  Worksheets.Add
  Sheets(1).Name = "Tonghop"
  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: Trên cửa sổ Module sau khi sao chép đoạn mã trên, Nhấn F5 để chạy mã.

Nhấn F5 để chạy mã

Bước 5: Kết quả là tất cả dữ liệu trong bảng tính đã được hợp nhất thành trang tính Tonghop được đặt trước các trang tính khác.

Kết quả là tất cả dữ liệu trong bảng tính đã được hợp nhất thành trang tính Tonghop

Lưu ý:

  • Để kết quả được đồng nhất và chuẩn xác, vậy tiêu đề và thứ tự các cột của từng Sheet phải đồng nhất.
  • Để đoạn mã Macro trên có thể chạy mà không sảy ra lỗi, thì tiêu đề phải bắt đầu từ ô A1, và dữ liệu cần lấy là từ dòng thứ 2 của tất cả các Sheet.
  • Đọan mã Macro trên chỉ tổng hợp nhiều Sheet trong một bảng tính (một file Excel) mà không tổng hợp nhiều Sheet từ nhiều trang tính.

Hy vọng bài viết này giúp ích được cho bạn. Chúc các bạn thành công!

Viết bình luận