– 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