Xóa nhiều sheet trong file

Có thể bạn đang có file của Excel có chứa những Sheet ẩn mà không còn có ích nữa . Vậy làm thế nào để có thể xóa nhanh những Sheet ẩn .

Nếu bạn đang dùng Excel 2007/2010/2013 thì dùng tính năng Inspect Document để làm việc này như .

Bấm File > Info > Check for Issues > Inspect Document 

Nếu bạn dùng Excel 2007 , bấm nút Office > Prepare > Inspect Document

Cửa sổ Document Inspect mở ra , bấm nút Inspect phía dưới cùng .

Trong phần Hidden Worksheets , bấm nút Remove All

Tuy nhiên bạn có thể làm việc này bằng Macro bên dưới

Sub deletehidden[]
Dim a As Integer
a = 1
While a
If Not Worksheets[a].Visible Then
Worksheets[a].Delete
Else
a = a + 1
End If
Wend
End Sub

  • #1

Khi bạn làm việc 1 văn bản excel có rất nhiều sheet lên tới hàng chục hoặc thậm chí hàng trăm, nhưng bạn chỉ cần dùng 1 hoặc 1 số sheet và không cần các sheet còn lại, bạn muốn xóa nhanh các sheet không cần thiết đó thay vì phải chọn từng sheet và xóa thì có thể làm theo hướng dẫn sau đây.

TH1: Xóa nhiều sheet chỉ giữ lại 1 vài sheet thì các bạn click chọn Sheet đầu tiên và nhấn giữ phím Shift + click vào sheet cuối cùng, nếu sheet không hiển thị hết thì click vào nút mũi tên tham gia và giữ để excel hiển thị sheet cuối cùng. Sau đó click vào SHeet cuối cùng đó[vẫn giữ sheet]

Sau khi chọn hết được tất cả các sheet các bạn chỉ việc nhấn và giữ Ctrl và click vào những sheet bạn muốn giữ lại, để giữ lại các sheet này

Ví dụ ở đây mình chỉ cần giữ lại sheet4 và sheet6

Sau đó click chuột phải vào Sheet đã chọn và nhấn nút Delete để xóa các sheet đã chọn

TH2: Trog trường hợp các bạn chỉ xóa 1 vài sheet thì chỉ cần nhấn và giữ Ctrl + click chọn những sheet muốn xóa và click chuột phải chọn Delete để xóa nhanh cách sheet này

Xem thêm: Hướng dẫn cách copy sheet trong excel sang file Excel khác 2007 2010 2013

  • Chủ đề excel sheet xóa
  • 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 -> 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

    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

    Chủ Đề