Nếu bạn sử dụng Excel khá ít, bạn biết bạn có thể nhận được một số sổ làm việc khá lớn từ đồng nghiệp. Thông thường, bạn nên chia nhỏ sổ làm việc để mỗi trang tính nằm trong sổ làm việc của chính nó. Mặc dù điều này có thể được thực hiện theo cách thủ công, nhưng quá trình này nhanh chóng trở nên tẻ nhạt nếu bạn có nhiều việc phải làm.

Loại công việc lặp đi lặp lại này là điều đương nhiên đối với macro. Macro sau, được gọi là BreakItUp, tạo các tệp sổ làm việc riêng lẻ dựa trên các trang tính trong sổ làm việc hiện tại. Do đó, nếu sổ làm việc hiện tại chứa 25 trang tính, việc chạy macro này dẫn đến 25 tệp sổ làm việc Excel riêng lẻ được tạo. Mỗi sổ làm việc có một trang tính duy nhất và tên của sổ làm việc giống với tên của trang tính.

Sub BreakItUp()

Dim sht As Worksheet     Dim NFName As String     Const WBPath = "C:\"



For Each sht In ActiveWorkbook.Worksheets         sht.Copy         NFName = WBPath & sht.Name & ".xls"

ActiveWorkbook.SaveAs FileName:=NFName, _             FileFormat:=xlNormal, CreateBackup:=False         ActiveWindow.Close     Next End Sub

Macro BreakItUp lưu trữ các sổ làm việc mới trong thư mục gốc trên ổ C:. Nếu bạn muốn sổ làm việc của mình được lưu ở một nơi khác, bạn có thể chỉ cần thay đổi dòng mà hằng số WBPath được tạo.

Bạn cũng nên biết rằng macro này tương đối dễ gặp sự cố. Ví dụ: nếu bạn sử dụng một ký tự trong tên trang tính không phải là “hợp pháp” cho tên tệp, macro sẽ dừng một cách thô bạo khi nó cố gắng tạo tệp. Tất nhiên, bạn có thể dễ dàng thực hiện các sửa đổi đối với macro để kiểm tra và thay thế các ký tự bất hợp pháp như vậy.

Một cạm bẫy tiềm ẩn khác đối với macro là nó sẽ ngừng chạy nếu đã tồn tại một tệp có tên giống như trang tính. Ví dụ: giả sử bạn có một trang tính có tên MySheet1. Nếu đã có một tệp trên đĩa có tên MySheet1.xls, thì macro sẽ dừng khi cố gắng ghi đè tệp. Bạn có thể giải quyết vấn đề này bằng cách đảm bảo rằng không có xung đột tên tệp trong thư mục nơi các sổ làm việc đang được lưu.

Cuối cùng, nếu sổ làm việc gốc của bạn có các công thức tham chiếu đến các trang tính khác (ngoài trang tính mà công thức xuất hiện), thì những công thức đó sẽ không hoạt động trong sổ làm việc chia nhỏ. Vì lý do này, bạn sẽ muốn kiểm tra cẩn thận những gì được tạo để đảm bảo sổ làm việc phù hợp với nhu cầu của bạn.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (12273) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.

Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: