保护工作表不会在工作簿中打开

时间:2016-08-01 15:04:54

标签: excel excel-vba spreadsheet password-protection vba

我有一张包含多张工作表的Excel工作簿。有没有办法密码保护用户甚至打开工作簿中的工作表?工作表上有一个大图,我不希望每个人都能看到,更不用说编辑了。

提前感谢您的帮助

修改

我使用以下代码允许用户单击一个formcontrol按钮来访问相关表单。

Sub ShowHeatMap()
 Dim S As String
 S = InputBox("Enter Password")
 If S = vbNullString Then
     Exit Sub
 ElseIf S <> "wiretransfer" Then
     Exit Sub
 Else
     Worksheets("Training Heat Map").Visible = xlSheetVisible
 End If
End Sub

这与我添加到工作簿中的某种“主页”表单上的按钮相关联。

但是当我再次打开工作簿时,我无法让工作表保持隐藏状态。我试过这段代码:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 ThisWorkbook.Worksheets("Training Heat Map").Visible = xlSheetVeryHidden
End Sub

有什么想法吗?此代码在一般声明

下的工作表模块上输入

1 个答案:

答案 0 :(得分:0)

通过this answer,我认为这可能会对你有所帮助。在VBA中,将其放在ThisWorkbook中:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MySheets As String, Response As String
MySheet = "Sheet1"
If ActiveSheet.Name = MySheet Then
ActiveSheet.Visible = False
    Response = InputBox("Enter password to view sheet")
        If Response = "MyPass" Then
            Sheets(MySheet).Visible = True
            Application.EnableEvents = False
            Sheets(MySheet).Select
            Application.EnableEvents = True
        End If
End If
Sheets(MySheet).Visible = True
End Sub

显然需要根据您的需求进行一些调整。请记住,您还需要密码保护您的VBA代码,否则任何人都可以查看它并找到密码。

相关问题