Đối với việc phải xử lý dữ liệu nhiều thì chắc hẳn các bạn sẽ đối mặt với việc sử dụng nhiều sheet để lưu trữ dữ liệu sau đó lại muốn phải gộp dữ liệu trên nhiều sheet vào cùng một sheet để tổng hợp. Trong bài viết này, chúng ta sẽ hướng dẫn các bạn cách gộp nhiều sheet thành một nhanh chóng nhé!
Bình thường nghĩ tới việc gộp nhiều sheet thành một trong Microsoft Excel, có lẽ sẽ có một số bạn nghĩ tới cách làm thủ công đó là copy dữ liệu từ sheet này để paste sang sheet khác. Tuy nhiên đối với những file dữ liệu ít thì điều đó không phải là vấn đề, nhưng đối với những file dữ liệu lớn vài chục sheet thì chuyện đó quả thật là một vấn đề lớn khi chúng ta copy từng sheet lại thành một sheet.
Nhưng khi bạn là một người sử dụng Excel thông minh thì chúng ta có thể sử dụng thủ thuật để gộp nhiều sheet chứ không cần phải sao chép và dán dữ liệu thủ công. Chúng ta sẽ cùng tìm hiểu các cách xử lý để chúng ta có thể áp dụng vào công việc nhé
Cách gộp nhiều sheet thành 1 sheet trong Excel bằng VBA
Gom nhiều sheet thành một sheet đối với sheet dữ liệu giống nhau
+ 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: Tiếp theo, các bạn chọn thẻ Insert. Thanh cuộn hiện ra các bạn chọn mục Module.
+ Bước 3: Cửa sổ Module hiện ra, các bạn copy đoạn code dưới đây rồi paste vào cửa sổ.
Sub MergeSheets()
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: Sau đó các bạn nhấn F5 để chạy mã.
+ Bước 4: Sau đó các bạn nhấn F5 để chạy mã. Kết quả sẽ được như sau:
Gộp nhiều sheet thành một sheet với các sheet không giống nhau
Đối với những cấu trúc sheet như thế này mà muốn gom lại thành 1 sheet thì chúng ta sẽ không áp dụng được phương án trên mà phải làm như sau:
+ Bước 1: Đầu tiên chúng ta tạo ra một sheet chứa file dữ liệu gom tạm đặt tên là “GomSheet“. Sau đó chúng ta chọn tất cả các sheet muốn gom lại.
+ Bước 2: Cũng như ở trên chúng ta mở cửa sổ VBA bằng cách nhấn tổ hợp phím Alt + F11. Tiếp theo, các bạn chọn thẻ Insert. Thanh cuộn hiện ra các bạn chọn mục Module.
+ Bước 3: Cửa sổ Module hiện ra, các bạn copy đoạn code dưới đây rồi paste vào cửa sổ.
Sub MergeSheets()
Const NHR = 1
Dim MWS As Worksheet
Dim AWS As Worksheet
Dim FAR As Long
Dim LR As Long
Set AWS = ActiveSheet
For Each MWS In ActiveWindow.SelectedSheets
If Not MWS Is AWS Then
FAR = AWS.UsedRange.Cells(AWS.UsedRange.Cells.Count).Row + 1
LR = MWS.UsedRange.Cells(MWS.UsedRange.Cells.Count).Row
MWS.Range(MWS.Rows(NHR + 1), MWS.Rows(LR)).Copy AWS.Rows(FAR)
End If
Next MWS
End Sub
+ Bước 5: Sau đó các bạn nhấn F5 để chạy mã. Kết quả sẽ được như sau:
Cách gộp nhiều file thành 1 file trong Excel bằng VBA
Kết hợp nhiều file excel thành một file excel bằng VBA
+ Bước 1: Đặt tất cả file excel vào cùng một thư mục như hình sau.
+ Bước 2: Mở cửa sổ VBA bằng cách nhấn tổ hợp phím Alt + F11. Tiếp theo, các bạn chọn thẻ Insert. Thanh cuộn hiện ra các bạn chọn mục Module.
+ Bước 3: Cửa sổ Module hiện ra, các bạn copy đoạn code dưới đây rồi paste vào cửa sổ.
Sub MergeExcelFiles()
Dim fnameList, fnameCurFile As Variant
Dim countFiles, countSheets As Integer
Dim wksCurSheet As Worksheet
Dim wbkCurBook, wbkSrcBook As Workbook
fnameList = Application.GetOpenFilename(FileFilter:=”Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm”, Title:=”Choose Excel files to merge”, MultiSelect:=True)
If (vbBoolean <> VarType(fnameList)) Then
If (UBound(fnameList) > 0) Then
countFiles = 0
countSheets = 0
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set wbkCurBook = ActiveWorkbook
For Each fnameCurFile In fnameList
countFiles = countFiles + 1
Set wbkSrcBook = Workbooks.Open(Filename:=fnameCurFile)
For Each wksCurSheet In wbkSrcBook.Sheets
countSheets = countSheets + 1
wksCurSheet.Copy after:=wbkCurBook.Sheets(wbkCurBook.Sheets.Count)
Next
wbkSrcBook.Close SaveChanges:=False
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox “Processed ” & countFiles & ” files” & vbCrLf & “Merged ” & countSheets & ” worksheets”, Title:=”Merge Excel files”
End If
Else
MsgBox “No files selected”, Title:=”Merge Excel files”
End If
End Sub
+ Bước 4: Cửa sổ Module hiện ra, các bạn copy đoạn code dưới đây rồi paste vào cửa sổ.
+ Bước 5: Nhấn để chạy mã. Tất cả trang tính (bao gồm trang trắng) trong bảng tính sẽ được hợp nhất vào một bảng tính lớn..
Kết hợp nhiều file excel thành một file excel bằng Move or Copy
Nếu bạn mới học Excel, bạn sẽ không có lựa chọn nào khác ngoài sao chép dữ liệu trong từng trang tính và dán chúng vào bảng tính mới. Sử dụng Move or Copy sẽ giúp bạn xuất hoặc sao chép nhiều trang tính trong một bảng tính nhanh chóng hơn.
B1. Mở tất cả bảng tính bạn muốn hợp nhất thành một bảng tính mới.
B2. Chọn tất cả tên trang tính trong bảng tính ở thanh tên. Bạn có thể chọn nhiều trang bằng cách nhấn giữ Ctrl hoặc Shift. Nhấp phải vào tên trang tính, chọn Move or Copy
B3. Trong hộp thoại Move or Copy, chọn bảng tính lớn bạn muốn hợp nhất vào từ danh sách tùy chọn Move selected sheets to book. Sau đó xác nhận vị trí của các trang tính được hợp nhất như hình dưới đây.
B4. Nhấn OK. Các trang tính được chọn đã được di chuyển tới bảng tính lớn.
B5. Lặp lại bước 2-4 để di chuyển những bảng tính khác đến bảng tính lớn. Nó sẽ kết hợp nhiều trang tính của các bảng tính được mở thành một bảng tính lớn.
Trên đây là bài viết hướng dẫn cách gộp nhiều sheet thành một sheet trong Excel . Qua bài viết này chúng ta thấy việc sử dụng VBA trong Excel đem lại hiệu quả rất nhiều trong công việc đúng không nào. Không chỉ có vậy, VBA còn làm được nhiều điều thú vị hơn nữa như: giúp bạn tăng tốc trong quá trình xử lý trên excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như word, power point, outlook… giúp biến file excel của bạn trở thành 1 phần mềm chuyên nghiệp.
Discussion about this post