VBA Excel Cấp Tốc Bài 4 - Xóa Tự Động Hàng Loạt Sheets Không Active
Trong một file Excel có thể tạo nhiều Sheet làm việc, nhưng bạn chỉ cần dùng một hay một số Sheet và không cần các Sheet còn lại. Với một vài Sheet thì có thể dùng cách xóa thủ công nhưng số lượng vài chục hay vài trăm Sheet thì nên sử dụng câu lệnh để thực hiện công việc này sẽ tiết kiệm thời gian và công sức đáng kể.
Xem bài học trước
>> VBA Excel Cấp Tốc Bài 1 - Lọc Dữ Liệu Nhiều Điều Kiện Với Advanced Filter
>> VBA Excel Cấp Tốc Bài 2 - In Bảng Cửu Chương
>> VBA Excel Cấp Tốc Bài 3 - In Ấn Nhanh Hàng Loạt
Video hướng dẫn
Mở Visual Basic
Mở Visual Basic để code những câu lệnh thực hiện việc xóa các Sheet không Active: Developer -> Visual Basic -> chuột phải vào Sheet 1 -> Insert -> Module.
Code chương trình Xóa Sheet không Active
Cấu trúc của một chương trình vẫn là Sub sau đó đến tên chương trình enter phần kết trúc chương trình sẽ tự động sinh ra.
- Thực hiện khai báo một biến có tên là biến Worksheet với dòng lệnh:
- Sử dụng vòng lập For để quét tất cả các Sheet xem Sheet nào không phải là Sheet Active thì nó sẽ xóa đi, lệnh này với cú pháp là: For Each ws In ThisWorkbook.Sheets -> enter và Next để kết thúc vòng lặp.
- Tiếp tục If ws.Name <> ThisWorkbook.Activesheet.Name Then có nghĩa là nếu quét đến cái Sheet mà khác cái Sheet mình đang lựa chọn thao tác thì sẽ xóa đi -> enter và End If để kết thúc Điều kiện If.
- Bên trong hàm If viết câu lệnh nếu là khác thì xóa: Ws.Delete
Khi kích vào Run để chạy chương trình và sẽ hiện thông báo bạn thực sự có muốn xóa không bạn kích chọn Delete để xóa và thông báo cứ hiện lênh khi xóa mỗi Sheet.
Với số lượng rất nhiều Sheet nên không thể tích Delete mãi được thì mình sử dụng dòng lệnh: Application.DisplayAlerts = False và dòng lệnh: Application.DisplayAlerts = True hiện thông báo khi thực hiện lại xóa Sheet để tránh nhưng nguy hiểm cho người sử dụng sau.
Tạo Nút Nhấn Button
Phần này tùy vào nhu cầu hay chương trình của bạn có nên tạo Button hay không. Mình sẽ hướng dẫn cho các bạn cần tạo: Developer -> Insert -> chọn hình giữ chuột và kéo -> tích vào Macro mà bạn muốn gán cho Button -> ok.
Đoạn code VBA của chương trình xóa Sheets không Active:
Sub Xoa_sheet()
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Sheets
If ws.Name <> ThisWorkbook.ActiveSheet.Name Then
ws.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
Xem bài tiếp theo
>> VBA Excel Cấp Tốc Bài 5 - Copy File Từ Một Thư Mục Sang Thư Mục Khác
CHO ĐIỂM BÀI VIẾT NÀY