Làm việc với nhiều Sheet trên một file Excel giúp chúng ta tăng cường sự tương tác và liên kết giữa các bảng tính cần tính toán. Tuy nhiên, nó cũng gây trở ngại không nhỏ nếu file Excel của bạn quá lớn, và có quá nhiều Sheet.
Và nếu bạn đang có nhu cầu tách các Sheet này ra thành từng file Excel riêng biệt để tăng tốc độ mở file, giảm bớt dung lượng của file khi phải kéo theo các Add ins, hay VBA đã lưu thì đây chính là bài viết dành cho bạn.
Bởi vì trong bài viết này mình sẽ chia sẻ với các bạn một mẹo nhỏ trong việc tách hàng loạt Sheet trên một file Excel, và lưu lại dưới định dạng tên Sheet bằng code Macro VBA Excel.
Sau khi tách xong sẽ lấy tên của các Sheet thành tên file, và các công thức có trong Sheet sẽ vẫn được giữ nguyên mà không bị thay đổi.
Đọc thêm:
- Cách sửa lỗi công cụ VBA bị ẩn trên Excel và Word
- Thủ thuật lưu file Excel có chứa code Macros VBA Excel
- Hàm đổi chữ thường thành chữ in hoa trong Excel, và ngược lại
Dưới đây là ví dụ của file Excel, với file Bảng điểm gồm 6 Sheet khác nhau.
Cách tách hàng loạt Sheet thành các file Excel bằng code VBA
+ Bước 1: Để tách hàng loạt Sheet mà vẫn giữ nguyên các công thức, cùng các hàm Add ins, hay mã VBA (nếu có). Bạn click mở tab Developer
(xem cách hiện tab Developer trên Excel) => và chọn Visual Basic
như hình bên dưới.
Hoặc nhấn tổ hợp phím Alt + F11
để mở trình VBA trên Excel ra.
+ Bước 2: Tại hộp thoại Microsoft Visua Basic for Applications
, bạn click mở menu Insert
=> rồi chọn Module
.
+ Bước 3: Và bạn hãy copy đoạn mã Code sau:
Sub tachsheet()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
sh.Copy
ActiveWorkbook.SaveAs ThisWorkbook.Path & “\” & sh.Name, 51
ActiveWorkbook.Close
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Hoặc code sau:
Sub Splitbook()
‘Updateby20140612
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & “\” & xWs.Name & “.xls”
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
+ Bước 4: Paste vào hộp thoại Module (Code)
=> sau đó nhấn Run
, hoặc nhấn phím F5
trên bàn phím để thực hiện tách các Sheet thành các file Excel riêng biệt.
Và đây là kết quả của thư mục sau khi tách Sheet thành các file Excel định dạng *.xlsx
.
Lời kết
Okay, như vậy là mình vừa hướng dẫn cho các bạn cách tách Sheet thành từng file Excel riêng biệt bằng code VBA rồi nhé.
Rất nhanh chóng và đơn giản phải không các bạn 😀 Chúc các bạn thành công nha !
CTV: Lương Trung – Blogchiasekienthuc.com
ok fine, hướng dẫn chi tiết mình học được rồi
Thủ thuật này hay. Thanks bạn!
Minh làm theo và báo lỗi thế này bạn a:
Compile error:
Sub of Function not defined
Thủ thuật này tuyệt vời quá, tiết kiệm được bao nhiêu thời gian. Cảm ơn bạn nha