Cách ẩn/ hiện nhiều sheet Excel cùng lúc bằng lệnh VBA

Nội dung được viết bởi Ngọc Diệp

Trong bài viết ngày hôm nay, Gitiho sẽ hướng dẫn các bạn thao tác ẩn/ hiện Sheet Excel bằng lệnh VBA. Với thao tác này, các bạn có thể ẩn hoặc bỏ ẩn nhiều Sheet cùng một lúc tự động. Cùng tìm hiểu ngay với chúng mình nhé.

Tuyệt đỉnh VBA - Viết code trong tầm tay

Hướng dẫn ẩn Sheet Excel bằng lệnh VBA

Nếu chỉ cần thực hiện ẩn Sheet trong Excel với một hoặc hai Sheet, người dùng hoàn toàn có thể thao tác trên giao diện trang tính như thông thường bằng cách nhấn chuột phải tại tên Sheet và chọn Hide

Tuy nhiên, nếu bạn đang làm việc trên một file Excel chứa nhiều trang tính, có lẽ bạn sẽ cần biết làm tự động nhanh chóng hơn để ẩn nhiều trang tính cùng lúc thay vì ẩn lần lượt từng trang tính.

Cách ẩn nhiều Sheet cùng lúc bằng VBA

Đầu tiên, bạn cần xác định các trang tính cần ẩn. Sau đó bạn hãy vào tab Developer > nhóm Code > Visual Basic để mở cửa sổ VBA Excel. Hoặc bạn có thể nhấn tổ hợp phím tắt Alt + F11.

Cách ẩn nhiều Sheet cùng lúc bằng VBA

Tại đây, bạn hãy tạo một Module mới trong thẻ Insert và điền vào đó đoạn mã dưới đây. Sau đó nhấn F5 để chạy mã code này trên file Excel của bạn nhé:

Sub Hide_Sheet_Test01() 'Ẩn những Sheet cụ thể
Dim ar As Variant
Dim ws As Variant
'Tạo nhóm các Sheet cần thực hiện
ar=Array("Sheet1", "Sheet2")
'Lệnh ẩn Sheet
For Each ws In ar
Worksheets(ws).Visible=xlSheetHidden
Next ws
End Sub

Câu lệnh trên xác định các trang tính cần ẩn là Sheet 1Sheet 2. Nếu bạn muốn ẩn sheet nào thì có thể thay đổi câu lệnh theo cách tương ứng.

Sau khi đã xác định phạm vi các Sheet cần ẩn, bạn sẽ sử dụng vòng lặp For-Next trong VBA Excel để kiểm tra tất cả các Sheet tồn tại trong file Excel. 

Câu lệnh Worksheets(ws).Visible=xlSheetHidden sẽ tiến hành ẩn các sheet trùng tên với phạm vi đã được xác định phía trên.

Câu lệnh VBA ẩn tất cả các Sheet trừ Sheet cuối

Excel có một quy tắc: Người dùng không thể ẩn toàn bộ các trang tính mà tối thiểu phải hiển thị một Sheet khi mở file. 

Do đó, bạn có thể ẩn tất cả các Sheet không muốn hiển thị và để lại một Sheet cần hiển thị. Hãy áp dụng lệnh VBA Excel như sau:

Sub Hide_Sheet_Test02() 'Ẩn tất cả các Sheet chỉ chừa lại Sheet cuối cùng
Dim i As Integer
For i=1 To Worksheets.Count - 1
   Sheets(i).Visible=False
Next i
End sub

Với thuộc tính .Count, lệnh Worksheets.Count - 1 sẽ tiến hành đếm tất cả các Sheet tồn tại trong file Excel của bạn rồi trừ đi 1 để hiển thị Sheet cuối cùng. Như vậy, bạn đã có thể hoàn thành thao tác ẩn tất cả các Sheet trừ sheet cuối bằng VBA.

Hướng dẫn bỏ ẩn các sheet trong Excel bằng lệnh VBA

Khi bạn cần bỏ ẩn tất cả các trang tính, bạn hoàn toàn có thể làm được điều đó bằng VBA Excel. Chúng mình sẽ chỉ cho bạn lệnh thực hiện nhé:

Sub Unhide_AllSheet() 'Bỏ ẩn tất cả các Sheet
Sub Unhide_AllSheet() ' Bỏ ẩn tất cả các Sheet
    Dim ws As Worksheet
    On Error Resume Next ' Bỏ qua các lỗi có thể xảy ra
    ' Bỏ ẩn các Sheet
    For Each ws In Worksheets
        ws.Visible = True
    Next ws
    ' Vô hiệu hóa bất kỳ lỗi nào xảy ra
    On Error GoTo 0
End Sub

Trong lệnh bỏ ẩn Sheet bằng VBA trên, bạn sẽ để ý thấy một mục vô hiệu hóa các lỗi xảy ra. Dòng lệnh này được thêm để xử lý các lỗi đôi khi có thể xảy ra trong quá trình chạy lệnh trên phạm vi file Excel đang mở.

Ngoài ra, bạn còn có thể tạo riêng một hàm mới phục vụ cho các thao tác lặp lại nhiều lần trong quá trình xử lý dữ liệu trên Excel của mình. Việc tạo hàm chắc chắn sẽ giúp bạn đẩy nhanh tiến độ làm việc hơn nhiều lần. Cùng tìm hiểu chi tiết cách tạo hàm bằng VBA Excel tại bài viết dưới đây nhé:

Hướng dẫn cách tự tạo hàm UDF trong Excel bằng lệnh VBA

Tổng kết

Như vậy, chúng ta đã tìm hiểu thao tác ẩn/ hiện nhiều sheet trong Excel bằng VBA. Các bạn hãy ghi nhớ hoặc lưu lại lệnh để áp dụng trong các trường hợp cần ẩn nhiều trang tính cùng lúc nhé. Để tìm hiểu thêm các thủ thuật hữu ích khác với VBA, hãy tham khảo các bài viết trên blog Gitiho và đăng ký khóa học Tuyệt đỉnh VBA với chúng mình nhé!

Gitiho chúc các bạn thành công!

Hiện gói hội viên đang được ưu đãi giảm 200K. Chỉ với 182K/ tháng - Học hơn 500 khóa bất kỳ tại Gitiho! Nhấn vào banner bên dưới để tìm hiểu thêm!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông