Trang chủ Học Office Học Excel [Tuts] Cách tách Sheet thành từng file Excel riêng biệt trong Excel

[Tuts] Cách tách Sheet thành từng file Excel riêng biệt trong Excel

Lưu ý: Bạn hãy đọc thật kỹ bài viết trước khi thực hiện nhé ! Nếu như trong quá trình sử dụng bạn gặp bất cứ lỗi gì, ví dụ như bị lỗi link download, blog load chậm, hay là không truy cập vào được một trang nào đó trên blog... thì bạn vui lòng thông báo với mình tại đây nhé. Thanks !

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:

Dưới đây là ví dụ của file Excel, với file Bảng điểm gồm 6 Sheet khác nhau.

code-tach-sheet-trong-excel (1)

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.

code-tach-sheet-trong-excel (2)

+ 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.

code-tach-sheet-trong-excel (3)

+ 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.

code-tach-sheet-trong-excel (4)

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.

code-tach-sheet-trong-excel (6)

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 !

CTV: Lương Trung – Blogchiasekienthuc.com

[Tuts] Cách tách Sheet thành từng file Excel riêng biệt trong Excel
4.5 (2) votes
Note: Bài viết này hữu ích với bạn chứ ? Đừng quên đánh giá bài viết, like và chia sẻ cho bạn bè và người thân của bạn nhé !





Administrator: Kiên Nguyễn Blog

Có một câu nói của người Nhật mà mình rất thích đó là " Người khác làm được thì mình cũng làm được ". Chính vì thế mà hãy theo đuổi đam mê, thành công sẽ theo đuổi bạn ! Nếu như bạn đang gặp khó khăn và cần sự trợ giúp thì hãy comment phía bên dưới mỗi bài viết để nhận được sự hỗ trợ từ cộng đồng Blog Chia Sẻ Kiến Thức nhé.


3 comments

  1. ok fine, hướng dẫn chi tiết mình học được rồi

  2. Thủ thuật này hay. Thanks bạn!

  3. ♡ Đã có: 3 BL Gia Bảo

    Minh làm theo và báo lỗi thế này bạn a:

    Compile error:
    Sub of Function not defined


Một vài lưu ý trước khi comment :

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Tất cả các comment của các bạn sẽ được giải đáp trong vòng 48h (thường vào buổi tối)!
Không được sử dụng từ khóa trong ô 'Name', bạn hãy dùng tên thật hoặc Nickname của bạn !
Không dẫn link sang trang web/blog khác. Xem quy định comment tại đây. Thank All!

Leave a Reply

Your email address will not be published. Required fields are marked *