Cánh ẩn Hoàn Toàn Và Hiện Sheets Trong WorkBook
Có thể bạn quan tâm
Nếu bạn gặp một Wowkbook, trong đó có nhiều dữ liệu liên kết đến một Sheets, nhưng mà bạn chẳng thể nào tìm được Sheets đó trong Workbook. Thì có lẽ Sheets đó đã được người tạo ẩn hoàn toàn khỏi bảng tính Excel.
Sheets ẩn hoàn toàn trong Workbook là Sheets bị ẩn đi và cũng không thể làm hiện lại bằng cách mà vẫn thường hay làm là Unhide. Vì cũng chẳng tìm thấy cái Sheets đó trong bảng chọn khi Unhide. Vậy làm sao để ẩn hoàn toàn Sheets khỏi Workbook và làm sao hiện lại ? thì bài viết này sẽ giúp bạn thực hiện.
Cách làm ẩn hoàn toàn và hiện Sheet trong Workbook
Với cách ẩn hiện Sheets thông thường vẫn hay làm là chuột phải vào Sheet và Hide hoặc Unhide. Nhưng với ẩn hoàn toàn và hiện một Sheets bạn chỉ có thể thực hiện trong VBAProject.
Ví dụ một Workbook có 5 Sheets.
Vào VBA, bạn chọn vào một Sheet bất kỳ muốn ẩn và trong Properties, bạn tùy chọn thuộc tính Visible thành –xlSheetVeryHiden.
Tiếp theo, bạn hãy quay trở lại bảng tính để kiếm tra. Thì Sheets đó đã bị ẩn đi và khi chuột phải vào Sheet thì Unhide đã bị khóa. Có nghĩa là 5 Sheets ban đầu, mình đã ẩn1 Sheets bằng xlSheetVeryHiden thì Sheet đó đã bị ẩn hoàn toàn và với cách ẩn hiện Sheets thông thường sẽ không thấy được.
Hỏi Vậy khi đã ẩn hoàn toàn thì làm sao có thể làm Sheets đó hiện lại được?
- Để hiện Sheets ẩn hoàn toàn thì bạn cần chuyển thuộc tính Visible của Sheets đó thành xlSheetVisible là được.
Nhưng ẩn hoàn toàn và hiện một Sheets thì có vẻ phải thực hiện nhiều thao tác quá?
Nếu vậy, bạn hãy sử dụng thêm các hàm VBA có chức năng ẩn hiện Sheets như sau:
Cách ẩn hoàn toàn và hiện Sheet bằng VBA Excel
Với mỗi thuộc tính của một đối tượng trong VBA bạn có thể gán giá trị được. Vì vậy để ẩn hay hiện một WorkSheets bạn chỉ cần tạo một số Macro trong Module và gắn thuộc tính Visible của WorkSheets với các giá trị:
- xlSheetVisible: hiện.
- xlSheetHiden: ẩn.
- xlSheetVeryHiden: ẩn hoàn toàn.
#1 Ẩn hoàn toàn Sheet hiện hành
Bạn có thể sử dụng hàm sau:
Sub VeryHiddenActiveSheet() ActiveSheet.Visible = xlSheetVeryHidden End SubHoăc bạn có thể chọn tất cả WorkSheets và chạy hàm sau để ẩn nhiều Sheets một lần.
Sub VeryHiddenSelectedSheets() Dim wks As Worksheet On Error GoTo Err For Each wks In ActiveWindow.SelectedSheets wks.Visible = xlSheetVeryHidden Next Exit Sub Err: MsgBox "WorkBook phai co it nhat một WorkSheets hien hanh." End Sub Code language: PHP (php)Lưu ý Không thể ẩn tất cả các Sheet, nếu chạy hàm trên Sheets hiện hành sẽ được giữ lại.
#2 Hiện Sheet đã ẩn hoàn toàn
Nếu bạn chỉ cần hiện Sheets ẩn hoàn toàn thì sử dụng hàm:
Sub UnhideVeryHiddenSheets() Dim wks As Worksheet For Each wks In Worksheets If wks.Visible = xlSheetVeryHidden Then wks.Visible = xlSheetVisible Next End Sub Code language: PHP (php)Hoặc hiện tất cả các Sheets đã ẩn bằng hàm:
Sub UnhideAllSheets() Dim wks As Worksheet For Each wks In ActiveWorkbook.Worksheets wks.Visible = xlSheetVisible Next wks End Sub Code language: PHP (php)Trường hợp Nếu bạn muốn tạo mật khẩu bảo vệ cho các Macro hiện Sheets, bạn có thể thực theo các bước sau:
- Tạo mật khẩu bảo vệ mã lệnh VBA. Lưu ý là nếu bạn đặt mật khẩu thì User vẫn có thể chạy Macro được vì vậy bạn có thể áp dụng tiếp các bước sau.
- Tạo UserForm với một TextBox và một Nút nhấn (Command Button).
Tạo sự kiện cho nút nhấn và thêm 1 hàm điều kiện IF kiểm tra 1 mật khẩu mà bạn tự đặt.
Private Sub btnKiemtra_Click() If txtMatkhau.Text = "mk0001" Then bool = True Else bool = False End If Unload Me End Sub Code language: PHP (php)Tại Module mà bạn đã tạo ở trên, hãy thêm vào một biến dữ liệu toàn cục. Biến này sẽ có giá trị True/ False.
Public bool As Boolean Code language: PHP (php)Sau đó bạn hãy gọi UserForm từ các hàm hiện Sheets ẩn trong Module. Và kiếm tra biến bool là True (mật khẩu đúng) > hiện Sheets hoặc False (mật khẩu sai) thì không hiện.
Sub UnhideAllSheets() UserForm1.Show If bool = True Then Dim wks As Worksheet For Each wks In ActiveWorkbook.Worksheets wks.Visible = xlSheetVisible Next wks Else MsgBox "Sai Mat Khau" End If End Sub Code language: PHP (php)Mỗi khi chạy Macro thì UserForm sẽ hiện lên và nếu nhập đúng mật khẩu thì hàm hiện Sheets ẩn mới thực thi. Nếu sai, sẽ báo ra MsgBox.
Như vậy, với cách ẩn hoàn toàn Sheets mình đã giới thiệu như trên, hy vọng bạn có thể áp dụng để ẩn các Sheets có dữ liệu mà bạn không muốn hiện trong Workbook do bạn tạo. Cũng như làm hiện các WorkSheet được ẩn hoàn toàn.
Chúc bạn thành công!
Từ khóa » Code ẩn Sheet Trong Vba
-
Hướng Dẫn Thao Tác ẩn Sheet Trong Excel Bằng Lệnh VBA
-
Hướng Dẫn Cách ẩn Và Bỏ ẩn Nhiều Sheet Cùng Lúc Bằng VBA
-
Hướng Dẫn Cách ẩn Hiện Sheets Bằng VBA - Tuyệt đỉnh VBA
-
Hỏi Code Ẩn Hiện Sheet | Giải Pháp Excel
-
Hướng Dẫn Cách ẩn Hiện Sheets Bằng VBA – Tuyệt đỉnh VBA
-
HƯỚNG DẪN CÁCH TẠO MENU ẨN HIỆN SHEET THEO Ý MUỐN ...
-
Hide (or Unhide) A Worksheet - VBA Code Examples - Automate Excel
-
Code VBA Công Cụ Xóa - Sắp Xếp - Ẩn Sheet Siêu Tiện ích Trong Excel
-
Cách Hide / Unhide Tất Cả Các Sheet Trong Excel Nhanh Nhất - Cafesua
-
How To Delete A SHEET Using A VBA Code (Macro) - Excel Champs
-
How To Hide & Unhide A Sheet Using VBA In Excel
-
Tool - ProtectVBA - Bảo Mật Code VBA | Cùng Học Excel
-
Cách Ẩn Sheet Trong Excel Từ Cơ Bản Đến Nâng Cao 7/2022