Khi làm việc với Excel, bạn có thể để ẩn hoặc hiện Sheets bằng cách chọn hide/unhide. Tuy nhiên, sẽ có một số trường hợp mà bạn không muốn người nhận có thể xem được dữ liệu bằng cách unhide sheet. Vậy làm cách nào để ẩn hoàn toàn Sheets khỏi Workbook và làm sao để hiện lại? Bài viết này sẽ giúp bạn cách thực hiện

Cách làm ẩn hoàn toàn và hiện Sheet trong Workbook

Ví dụ một Workbook có 5 Sheets.

5.1

Để ẩn/hiện hoàn toàn một Sheet, bạn cần thực hiện trong VBAProject. Bạn có thể theo 1 trong 2 cách dưới đây:

Cách 1:

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.

6.1

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.

Web Hinh 7

Để hiện trở lại Sheet đó thì bạn cần chuyển thuộc tính Visible của Sheets đó thành xlSheetVisible là được.

Cách 2:

Sử dụng thêm các hàm VBA có chức năng ẩn hiện Sheet như sau:

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 Sub

Hoă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

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

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

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

  • – Tại Moldulemà 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

  • – 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 boollà 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 WorksheetFor Each wks In ActiveWorkbook.Worksheetswks.

Visible = xlSheetVisible

Next wks

Else

MsgBox “Sai Mat Khau”

End If

End Sub

  • – 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.

Với 2 cách 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.

–UniTrain sưu tầm—

 Xem thêm

Excel Tips: Các công cụ phân tích dữ liệu thông dụng trong Excel

8 điều bạn không nên làm khi thao tác trong Excel

Khóa học Ứng dụng Excel trong xử lý dữ liệu