Trong bài viết ngày hôm nay, Gitiho sẽ hướng dẫn các bạn thao tác ẩn Sheet trong 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. Cùng tìm hiểu ngay với chúng mình nhé.
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 cách ẩn Sheet bằng VBA để ẩn nhiều trang tính cùng lúc thay vì ẩn lần lượt từng trang tính.
Đầ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.
Tại đây, bạn hãy tạo một Module và điền vào đó đoạn mã dưới đây:
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
Trong đó, bạn cần quan tâm đến câu lệnh ar=Array("Sheet1", "Sheet2") vì đó là nơi xác định phạm vi cần ẩn khỏi giao diện hiển thị file Excel bao gồm Sheet1 và Sheet2 . Bạn có thể thay đổi các giá trị này dựa trên các yêu cầu ẩn Sheet bằng VBA của mình. Hãy lưu ý viết đúng tên trang tính để áp dụng lệnh một cách chính xác nhé.
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 Sheet trong Excel đối với tất cả các Sheet trùng tên với phạm vi đã được xác định phía trên.
Trong lệnh, chúng ta đã sử dụng cấu trúc vòng lặp For-Next. Để tìm hiểu thêm về các vòng lặp giúp chạy lệnh VBA Excel liên tục, bạn hãy đọc thêm bài viết dưới đây về môt vòng lặp khác mang tên Do...Loop. Chắc chắn cấu trúc này sẽ giúp bạn giải quyết nhiều yêu cầu phức tạp khi xử lý dữ liệu trên Excel đấy.
Xem thêm: Hướng dẫn viết cấu trúc Do...Loop trong vòng lặp VBA Excel
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. Quy tắc này áp dụng cho tất cả các file Excel chúng ta tạo lập và sử dụng. 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 thao tác ẩn Sheet trong Excel với 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
Bằng cách sử dụng 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 Sheet bằng VBA.
Hãy tìm hiểu thêm một ứng dụng của thuộc tính .Count trong VBA Excel tại bài viết dưới đây để hiểu hơn về các lệnh VBA bạn có thể viết với thuộc tính này nhé.
Xem thêm: Hướng dẫn cách tìm dòng cuối trong VBA cho dữ liệu bảng Excel
Thay vì ẩn Sheet trong Excel, ngày cả 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 thao tác này nhé.
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 ln Sheets
ws.Visible=True
Next
'Vô hiệu hóa bất kỳ lỗi nào xảy ra
On Error Goto 0
End SubTrong 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é.
Xem thêm: Hướng dẫn cách tự tạo hàm UDF trong Excel bằng lệnh VBA
Như vậy, chúng ta đã tìm hiểu thao tác ẩn Sheet trong Excel với lệnh 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!
Top khóa học Excel được học viên đánh giá cao