loading...

Cách gộp tự động các sheet (bảng tính) trong excel

Nối nhiều Sheet thành một Sheet (Exel)

– Mở Excel
– Bấm tổ hợp phím Alt-F11
Cửa sổ Microsoft Visual Basic mở ra . Trong cửa sổ này bạn chọn Insert > Module sau đó bạn dán theo nội dung dưới đây
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
Quay trở lại Excel, đánh dấu chọn những Sheet bạn muốn nối bằng cách giữ phím Ctrl và bấm chuột trái vào tên Sheet bên dưới, chọn Sheet bạn muốn gộp toàn bộ các Sheet .

Tiếp theo, với excel 2003:  Chọn menu Tools > Macro > chạy MergeSheets là hoàn tất

Với Word excel V> 2007 thì chúng ta chọn View > Macro > View Macro > chọn MergeSheet > Run
Hoặc
Sub NMH()
Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
Dim SQL$, ws As Worksheet
    With cnn
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                        "Data source=" & ThisWorkbook.FullName & _
                        ";Extended properties=""Excel 12.0;IMEX=1;HDR=Yes"";"
        .Open
    End With
    For Each ws In Worksheets
        If ws.CodeName <> "THOP" Then SQL = SQL & " " & "[" & ws.Name & "$A:G]"
    Next
    SQL = "SELECT * FROM " & Replace(Trim(SQL), " ", " UNION ALL SELECT * FROM ")
    rst.Open SQL, cnn, 3, 3, 1
    [A2].CopyFromRecordset rst
rst.Close: Set rst = Nothing
cnn.Close: Set cnn = Nothing
End Sub

Hoặc
Đối với 2 ô trong cùng một bảng thì việc nối ô dễ dàng với các công cụ có sẵn. Trong một số trường hợp bạn cần nối dữ liệu các có sheet với nhau thành 1 thì cách nhanh nhất là dùng một marco (marco là lệnh thực thi một thao tác lặp đi lặp lại một cách tự động bằng cách ghi lại thao tác lặp đi lặp lại hoặc lập trình bằng ngôn ngữ VBA có sẵn trong bộ Office).
Bước 1: Kiểm tra trên Ribbon của Office đã có thẻ Developer chưa, nếu chưa có vào nút Office - Excel Options, chọn Popular, đánh dấu chọn Show Developer tab in Ribbon.
Bước 2:
Kích vào Developer, chọn Marco, nhập tên marco không dấu, không ký tự trắng, không ký tự đặc biệt, kích nút Create.

Khi đó cửa sổ soạn thảo hiện ra, nhập sau code cho marco, đóng cửa sổ soạn thảo code lại.
Sheets(1).Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
For Each sheet In Sheets
If sheet.Index <> 1 Then
rowcount = sheet.UsedRange.Rows.Count
sheet.UsedRange.Copy Destination:=Sheets(1).Cells(lastrow + 1, 1)
lastrow = lastrow + rowcount
sheet.UsedRange.Clear
End If
Next sheet
Bước 3: Sử dụng marco để nối các sheet, khi nối lưu ý bạn muốn nối theo thứ tự thì phải sắp sếp lại các sheet bằng cách dùng chuột di chuyển các sheet, các sheet sẽ được nối vào sheet đầu tiên.
Vào ribbon Developer, chọn Marco, chọn marco đã lưu, kích nút Run.


Hoặc
Trong Excel để gộp tất cả các Sheet của một file vào thành một Sheet bạn cần tạo Macro .
Mở file nhiều Sheet mà bạn muốn gộp lại thành một Sheet , bấm tổ hợp phím Alt_F11 để cửa sổ Microsoft Visual Basic mở ra .
Bấm menu Insert > Module
Bạn sao chép nội dung bên dưới

Sub Combine()
Dim NumSheets As Integer
Dim NumRows As Integer

NumSheets = 50
NumRows = 43

Worksheets(1).Select
Sheets.Add
ActiveSheet.Name = "Tong hop"
For X = 1 To NumSheets
Worksheets(X + 1).Select
Rows("1:" & NumRows).Select
Selection.Copy
Worksheets("Tong hop").Select
ActiveSheet.Paste
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Worksheets(X + 1).Select
Range("A1").Select
Next X
Worksheets("Tong hop").Select
Range("A1").Select
End Sub

Trong macro trên số Sheet mà bạn muốn gộp lại được khai báo ở NumSheeets , ví dụ trên là 50 .
Số hàng bạn muốn gộp ở mỗi sheet được khai báo ở NumRows , ví dụ trên là 43
Tên của Sheet mới sẽ là Tong hop .

Sau khi tạo xong macro trên quay trở lại Excel để chạy macro này .


0 nhận xét Blogger 0 Facebook

Post a Comment

Cám ơn bạn đã phản hồi


Subscribe to: Posts (Atom)

 
Sang kien kinh nghiem HAY - NCKHSPUD HAY - Sangkienkinhnghiemhay.net ©Email: tailieuchogiaovien@gmail.com. All Rights Reserved. Powered by >How to best
Link:Bantintuvan|tailieusupham|khoahocsupham|SKKN hay|Soidiemchontruong|dayvahoctot|diemthivao10hoctrenmobile|tradiemthituyensinh|How to best|Loans-Cars-Auto
Top