VBA Excel Cấp Tốc Bài 4 - Xóa Tự Động Hàng Loạt Sheets Không ...

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.

mở Visual Basic

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.

Chương trình xóa Sheet

  • 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 -> enterEnd 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

Vòng lập và điều kiện

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.

Xóa từng 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.

bật thông báo

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.

tạo button

Đ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

Từ khóa » Xóa Sheet Trong Vba