Bỏ qua nội dung chính

Làm cách nào để kết hợp nhiều sổ làm việc thành một sổ làm việc chính trong Excel?

Bạn đã bao giờ gặp khó khăn khi phải kết hợp nhiều sổ làm việc thành một sổ làm việc chính trong Excel? Điều khủng khiếp nhất là các sổ làm việc bạn cần kết hợp chứa nhiều trang tính. Và làm cách nào để chỉ kết hợp các trang tính được chỉ định của nhiều sổ làm việc vào một sổ làm việc? Hướng dẫn này trình bày một số phương pháp hữu ích để giúp bạn giải quyết vấn đề theo từng bước.


Kết hợp nhiều sổ làm việc vào một sổ làm việc với chức năng Di chuyển hoặc Sao chép

Nếu chỉ có một vài sổ làm việc cần được kết hợp, bạn có thể sử dụng lệnh Di chuyển hoặc Sao chép để di chuyển hoặc sao chép thủ công các trang tính từ sổ làm việc gốc sang sổ làm việc chính.

1. Mở các sổ làm việc mà bạn sẽ hợp nhất thành một sổ làm việc chính.

2. Chọn các trang tính trong sổ làm việc gốc mà bạn sẽ di chuyển hoặc sao chép vào sổ làm việc chính.

Ghi chú:

1). Bạn có thể chọn nhiều trang tính không liền kề bằng cách giữ Ctrl và nhấp vào từng tab trang tính.

2). Để chọn nhiều trang tính liền kề, vui lòng nhấp vào tab trang tính đầu tiên, giữ sự thay đổi rồi bấm vào tab trang tính cuối cùng để chọn tất cả.

3). Bạn có thể nhấp chuột phải vào bất kỳ tab trang tính nào, nhấp vào Chọn tất cả các trang tính từ trình đơn ngữ cảnh để chọn tất cả các trang tính trong sổ làm việc cùng một lúc.

3. Sau khi chọn các trang tính cần thiết, hãy nhấp chuột phải vào tab trang tính, sau đó nhấp vào Di chuyển hoặc sao chép từ menu ngữ cảnh. Xem ảnh chụp màn hình:

4. Sau đó Di chuyển hoặc sao chép hộp thoại bật lên, trong Đặt thả xuống, chọn sổ làm việc chính mà bạn sẽ di chuyển hoặc sao chép trang tính vào. Chọn di chuyển để kết thúc trong Trước trang tính hộp, kiểm tra Tạo một bản sao và cuối cùng nhấp vào OK .

Sau đó, bạn có thể xem các trang tính trong hai sổ làm việc được kết hợp thành một. Vui lòng lặp lại các bước trên để di chuyển trang tính từ các sổ làm việc khác vào sổ làm việc chính.


Kết hợp nhiều sổ làm việc hoặc trang tính được chỉ định của sổ làm việc vào một sổ làm việc chính với VBA

Nếu có nhiều sổ làm việc cần được hợp nhất thành một, bạn có thể áp dụng các mã VBA sau để nhanh chóng đạt được nó. Hãy làm như sau.

1. Đặt tất cả các sổ làm việc mà bạn muốn kết hợp thành một trong cùng một thư mục.

2. Khởi chạy tệp Excel (sổ làm việc này sẽ là sổ làm việc chính).

3. Nhấn nút Khác + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, nhấp Chèn > Mô-đun, sau đó sao chép mã VBA bên dưới vào cửa sổ Mô-đun.

Mã VBA 1: Hợp nhất nhiều sổ làm việc Excel thành một

Sub GetSheets()
'Updated by Extendoffice 2019/2/20
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xlsx")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub
	

Ghi chú:

1. Mã VBA trên sẽ giữ tên trang tính của sổ làm việc ban đầu sau khi hợp nhất.

2. Nếu bạn muốn phân biệt trang tính nào trong sổ làm việc chính đến từ đâu sau khi hợp nhất, vui lòng áp dụng mã VBA 2 bên dưới.

3. Nếu bạn chỉ muốn kết hợp các trang tính cụ thể của sổ làm việc thành một sổ làm việc chính, mã VBA 3 dưới đây có thể giúp bạn.

Trong mã VBA, “C: \ Users \ DT168 \ Desktop \ KTE \”Là đường dẫn thư mục. Trong mã VBA 3, "Trang tính1, Trang tính3"là các trang tính được chỉ định của các sổ làm việc mà bạn sẽ kết hợp thành một sổ làm việc chính. Bạn có thể thay đổi chúng dựa trên nhu cầu của mình.

Mã VBA 2: Hợp nhất các sổ làm việc thành một (mỗi trang tính sẽ được đặt tên bằng tiền tố của tên tệp gốc):

Sub MergeWorkbooks()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
On Error Resume Next
xStrPath = "C:\Users\DT168\Desktop\KTE\"
xStrFName = Dir(xStrPath & "*.xlsx")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
Do While Len(xStrFName) > 0
    Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
    xStrAWBName = ActiveWorkbook.Name
    For Each xWS In ActiveWorkbook.Sheets
    xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.Count)
    Set xMWS = xTWB.Sheets(xTWB.Sheets.Count)
    xMWS.Name = xStrAWBName & "(" & xMWS.Name & ")"
    Next xWS
    Workbooks(xStrAWBName).Close
    xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Mã VBA 3: Hợp nhất các bảng tính được chỉ định của sổ làm việc vào một sổ làm việc chính:

Sub MergeSheets2()
'Updated by Extendoffice 2019/2/20
Dim xStrPath As String
Dim xStrFName As String
Dim xWS As Worksheet
Dim xMWS As Worksheet
Dim xTWB As Workbook
Dim xStrAWBName As String
Dim xI As Integer
On Error Resume Next

xStrPath = " C:\Users\DT168\Desktop\KTE\"
xStrName = "Sheet1,Sheet3"

xArr = Split(xStrName, ",")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xTWB = ThisWorkbook
xStrFName = Dir(xStrPath & "*.xlsx")
Do While Len(xStrFName) > 0
Workbooks.Open Filename:=xStrPath & xStrFName, ReadOnly:=True
xStrAWBName = ActiveWorkbook.Name
For Each xWS In ActiveWorkbook.Sheets
For xI = 0 To UBound(xArr)
If xWS.Name = xArr(xI) Then
xWS.Copy After:=xTWB.Sheets(xTWB.Sheets.count)
Set xMWS = xTWB.Sheets(xTWB.Sheets.count)
xMWS.Name = xStrAWBName & "(" & xArr(xI) & ")"
Exit For
End If
Next xI
Next xWS
Workbooks(xStrAWBName).Close
xStrFName = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub

4. Nhấn nút F5 phím để chạy mã. Sau đó, tất cả các trang tính hoặc trang tính được chỉ định của sổ làm việc trong thư mục nhất định được kết hợp với một sổ làm việc chính cùng một lúc.


Dễ dàng kết hợp nhiều sổ làm việc hoặc các trang tính được chỉ định thành một sổ làm việc

May mắn thay, Kết hợp tiện ích sổ làm việc của Kutools cho Excel giúp việc hợp nhất nhiều sổ làm việc thành một dễ dàng hơn nhiều. Hãy xem cách để hàm này hoạt động trong việc kết hợp nhiều sổ làm việc.

Trước khi áp dụng Kutools cho Excel, Xin vui lòng tải xuống và cài đặt nó trước tiên.

1. Tạo sổ làm việc mới và nhấp vào Kutools Plus > Kết hợp. Sau đó, một hộp thoại bật lên để nhắc bạn rằng tất cả các sổ làm việc kết hợp phải được lưu và không thể áp dụng tính năng này cho các sổ làm việc được bảo vệ, vui lòng nhấp vào OK .

2. bên trong Kết hợp các bảng tính wizard, chọn Kết hợp nhiều trang tính từ sổ làm việc vào một sổ làm việc rồi bấm vào Sau cái nút. Xem ảnh chụp màn hình:

3. bên trong Kết hợp các bảng tính - Bước 2/3 hộp thoại, nhấp vào Thêm > Tập tin or Thư mục để thêm các tệp Excel mà bạn sẽ hợp nhất thành một. Sau khi thêm các tệp Excel, hãy nhấp vào Kết thúc và chọn một thư mục để lưu sổ làm việc chính. Xem ảnh chụp màn hình:

Bây giờ tất cả các sổ làm việc được hợp nhất thành một.

So với hai phương pháp trên, Kutools cho Excel có những ưu điểm sau:

  • 1) Tất cả các sổ làm việc và trang tính được liệt kê trong hộp thoại;
  • 2) Đối với các trang tính bạn muốn loại trừ khỏi hợp nhất, chỉ cần bỏ chọn nó;
  • 3) Các bảng tính trống được loại trừ tự động;
  • 4) Tên tệp gốc sẽ được thêm làm tiền tố cho tên trang tính sau khi hợp nhất;
  • Để biết thêm các chức năng của tính năng này, vui lòng truy cập vào đây.

  Nếu bạn muốn dùng thử miễn phí (30 ngày) tiện ích này, vui lòng nhấp để tải xuống, và sau đó đi đến áp dụng hoạt động theo các bước trên.


Kutools cho Excel - Giúp Bạn Luôn Hoàn Thành Công Việc Trước Thời Gian, Có Nhiều Thời Gian Tận Hưởng Cuộc Sống
Bạn thường thấy mình mải miết với công việc, thiếu thời gian dành cho bản thân và gia đình?  Kutools cho Excel có thể giúp bạn đối phó với 80% Giải đố excel và nâng cao 80% hiệu quả công việc, giúp bạn có thêm thời gian chăm sóc gia đình và tận hưởng cuộc sống.
300 công cụ nâng cao cho 1500 tình huống công việc, giúp công việc của bạn trở nên dễ dàng hơn bao giờ hết.
Không còn cần ghi nhớ các công thức và mã VBA, hãy cho bộ não của bạn nghỉ ngơi từ bây giờ.
Các hoạt động phức tạp và lặp đi lặp lại có thể được thực hiện một lần trong vài giây.
Giảm hàng nghìn thao tác bàn phím & chuột mỗi ngày, tạm biệt bệnh nghề nghiệp ngay từ bây giờ.
Trở thành chuyên gia Excel trong 3 phút, giúp bạn nhanh chóng được công nhận và được thăng chức.
110,000 người làm việc hiệu quả và hơn 300 công ty nổi tiếng thế giới được lựa chọn.
Làm cho $ 39.0 của bạn trị giá hơn $ 4000.0 đào tạo của những người khác.
Bản dùng thử miễn phí đầy đủ tính năng trong 30 ngày. Đảm bảo hoàn tiền trong 60 ngày mà không cần lý do.

Comments (146)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have one workbook with 100+ sheets, I want to move all 100+ sheets into another workbook in a single sheet.
This comment was minimized by the moderator on the site
I had to read throught the comments to find suggestions that worked for my application of the VBA CODE 2, but I managed to get it to work doing the following things:
1. make sure to change "C:\Users\DT168\Desktop\KTE\" to your own directory to wherever you have your files are located. don't forget the extra "\" at the end!2. my spreadsheets were extension ".xls", so I deleted the extra "x" in this line, like so: xStrFName = Dir(xStrPath & "*.xlsx")3. I placed all my spreadsheets in a single folder, and only those files were the contents of that folder, the target macro enabled spreadsheet where this vba was running from was saved outside of this folder (hopefully this makes sense).
one thing that I didn't want to mess with though is I only needed to merge the 1st tab of each spreadsheet, but I didn't want to mess with the code so if each workbook you want to merge into one has multiple tabs, this code will grab all of the tabs on each workbook and place them in your target spreadsheet, I had to manually delete all the tabs I didn't want.
if the author of this vba could reply to me, how do you change the code to just copy the 1st tab as opposed to all the tabs?
thank you!
This comment was minimized by the moderator on the site
hi I want a change. If the the sheet name is same then the data should be appended in the same name sheet rather than adding a sheet. for example if i have 10 files with jan, feb, mar same sheetnames. then result should be 1 file having jan, feb, mar only 3 sheets with the data of all 10 files. thanks
This comment was minimized by the moderator on the site
Good morning,

Basically I have to copy the values of another file example c: \ test.xlsx (sheet name "date"):

I have to copy the values from A2: T20


And I have to paste in another Extract.xlsx file on the “Extracts” folder on A2.


PLEASE NOTE: You must run vba when opening the file.
This comment was minimized by the moderator on the site
Hello! I need to merge multiple files into one, that are password protected. All source files use the same password. What changes are needed to the first VBA script to merge the files without having to enter the password each time?
This comment was minimized by the moderator on the site
Hello any one can help me, I want to combine sheet 2 only from 5 different sheet, can you script for me.
This comment was minimized by the moderator on the site
you can use Array function to copy the multiple sheets to combine in one file
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
Sheets(Array("Sheet1","Sheet2")).copy
This comment was minimized by the moderator on the site
hai sir i want know code for copying multiple sheets in one excel to multiple excels
This comment was minimized by the moderator on the site
how to use VBA code 1 to amend and make it runs to combine all the .xlsx files into one excel file and each excel spreedsheet tab in the combined excel file should be named as original file name.thanks
This comment was minimized by the moderator on the site
What part of VBA code 3 specifies the name of the worksheet to be copied?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations