我有一张包含多张工作表的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
有什么想法吗?此代码在一般声明
下的工作表模块上输入答案 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代码,否则任何人都可以查看它并找到密码。