使用密码保护一个工作表不显示

时间:2013-04-08 21:30:22

标签: excel excel-vba vba

Excel中是否有内置方法可以使用密码保护工作簿中的一个电子表格?

当用户勾选或选择一个控件时,会在工作表可见之前提示密码。

如果它没有内置到Excel中,可以用VBA实现吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试以下方法:

  • 使工作表VeryHiddenProtected无法从标准xl菜单中取消保护或检测到
  • Workbook_BeforeCloseWorkbook_Open事件
  • 上添加此保护
  • 我在这个例子中使用了名为 YourSheet 的工作表
  • 您应该保护此项目中的VBA以增加安全性。

插入Active X复选框并使用代码检查是否:

  1. 复选框为True
  2. 用户知道表单UnHide的密码。 ( Fred 在此示例中使用)
  3. CheckBox代码

    Private Sub CheckBox1_Click()
        Dim StrPass As String
        If CheckBox1.Value Then
            StrPass = Application.InputBox("Please enter the password", "Admin check")
            If StrPass = "fred" Then
                With ThisWorkbook.Sheets("YourSheet")
                    .Unprotect "fred"
                    .Visible = xlSheetVisible
                    MsgBox "Sheet unhidden!", vbInformation
                End With
            Else
                MsgBox "wrong password", vbCritical
            End If
        End If
    End Sub
    

    ThisWorkbook模块

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        With ThisWorkbook.Sheets("YourSheet")
            .Protect "fred"
            .Visible = xlVeryHidden
        End With
    End Sub
    
    Private Sub Workbook_Open()
        With ThisWorkbook.Sheets("YourSheet")
            .Protect "fred"
            .Visible = xlVeryHidden
        End With
    End Sub