Tôi nhận được một cuộc gọi từ một người bạn muốn kết hợp nhiều tệp Excel vào một sổ làm việc Excel. Anh ta có rất nhiều tệp trong một thư mục và anh ta muốn lấy tất cả các bảng tính từ tất cả các sổ làm việc vào một sổ làm việc.
Xem Video thao tác:
Xem full màn hình: Tại đây
Link tải file mẫu: Tại đây
Trong khi điều này có thể được thực hiện bằng tay, nó sẽ tốn thời gian và dễ bị lỗi.
Tuy nhiên, một mã VBA đơn giản có thể thực hiện việc này sau vài giây.
Kết hợp nhiều tệp Excel thành một tệp
Đây là mã có thể kết hợp nhiều sổ làm việc Excel trong một thư mục được chỉ định vào một sổ làm việc Excel duy nhất:
Sub ConslidateWorkbooks()
'Created by Sumit Bansal from https://trumpexcel.com
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Application.ScreenUpdating = False
FolderPath = Environ("userprofile") & "DesktopTest"
Filename = Dir(FolderPath & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.ScreenUpdating = True
End Sub
Làm thế nào để sử dụng mã này?
Dưới đây là các bước để sử dụng mã này:
- Đặt tất cả các tệp Excel mà bạn muốn kết hợp vào một thư mục. Với mục đích của hướng dẫn này, tôi đã tạo một thư mục có tên Test và có sáu tệp trong đó (4 sổ làm việc Excel và 1 Power Point và Word).
- Mở một sổ làm việc Excel mới.
- Nhấn ALT + F11 (hoặc chuyển đến Nhà phát triển -> Mã -> Visual Basic). Điều này sẽ mở Visual Basic Editor.
- Trong VB Editor, trong Trình soạn thảo dự án, nhấn chuột phải vào bất kỳ đối tượng nào trong sổ làm việc và đi đến Chèn -> Mô-đun. Thao tác này sẽ chèn một mô-đun cho sổ làm việc.
- Nhấp đúp vào mô-đun. Nó sẽ mở cửa sổ mã bên phải.
- Sao chép và dán mã ở trên vào cửa sổ mã.
- Trong mã, bạn cần phải thay đổi dòng mã sau đây:
FolderPath = Environ("userprofile") & "DesktopTest"
-
Trong dòng này, thay đổi phần trong dấu ngoặc kép (được đánh dấu màu cam) với vị trí của thư mục mà bạn có các tệp mà bạn muốn kết hợp. Trong mã được sử dụng ở trên, thư mục nằm trên Desktop. Trong trường hợp bạn có nó ở một số vị trí khác, chỉ định đường dẫn đó ở đây.
- Đặt con trỏ ở bất kỳ đâu trong mã và nhấp vào nút phát màu lục trong tùy chọn Thanh công cụ (hoặc nhấn phím F5).
Điều này sẽ chạy mã và tất cả các bảng tính từ tất cả các tệp Excel trong thư mục sẽ được hợp nhất vào một sổ làm việc.
Mã này hoạt động như thế nào?
- Mã sử dụng hàm DIR để lấy tên tệp từ thư mục được chỉ định.
- Dòng sau gán tên tệp excel đầu tiên cho biến ‘Filename’.
Tên tệp = Dir (FolderPath & “* .xls *”) - Sau đó, vòng lặp Do While được sử dụng để kiểm tra xem tất cả các tệp đã được bảo vệ chưa.
- Trong vòng lặp Do While, cho mỗi vòng lặp được sử dụng để sao chép tất cả các trang tính vào sổ làm việc mà chúng tôi đang chạy mã.
- Vào cuối Do Loop, dòng mã sau được sử dụng: Filename = Dir (). Nó gán tên tệp Excel tiếp theo cho biến Filename và vòng lặp bắt đầu lại.
- Khi tất cả các tệp được bao phủ, hàm DIR trả về một chuỗi rỗng, đó là khi vòng lặp kết thúc.
Đây là giải thích về hàm DIR trong thư viện MSDN :
DienDan.Edu.Vn Cám ơn bạn đã quan tâm và rất vui vì bài viết đã đem lại thông tin hữu ích cho bạn.DienDan.Edu.Vn! là một website với tiêu chí chia sẻ thông tin,... Bạn có thể nhận xét, bổ sung hay yêu cầu hướng dẫn liên quan đến bài viết. Vậy nên đề nghị các bạn cũng không quảng cáo trong comment này ngoại trừ trong chính phần tên của bạn.Cám ơn.