是否可以隐藏“标签select设施”?

我的目标是用密码保护表格。

所以当用户打开工作簿时,我希望除了一个以外的所有工作表都将被隐藏(非常隐藏)。 当用户input密码时,所有的页面都将可见。 我怎样才能隐藏和使用VBA代码显示大量的表单,有没有简单的技术? 我的意思是可以隐藏“标签select设施”?

在此之前,让我指出Excel文件如何不安全:

  1. 您的代码将成为文件XML的一部分,因此需要检查底层数据,任何想要了解如何获取密码的人。

现在,您已经收到警告,您必须在工作簿打开事件中包含这些代码。 它将隐藏所有内容(以防止在closures书本时可以看到表单的情况),然后询问密码。

Public Sub UnlockSheets() ' 1 - hide every sheet, except the desired one Dim aWorksheet As Worksheet For Each aWorksheet In ActiveWorkbook.Worksheets If aWorksheet.Name <> "desired sheet name" Then aWorksheet.Visible = xlVeryHidden Next ' 2 - ask for the password Dim userPassword As String userPassword = InputBox("Please enter your password") If userPassword = "my_password" Then RevealSheets Else MsgBox "Wrong password!", vbCritical Application.DisplayAlerts = False ActiveWorkbook.Close False End If End Sub Public Sub RevealSheets() '3 - Hide all the sheets Dim aWorksheet As Worksheet For Each aWorksheet In ActiveWorkbook.Worksheets aWorksheet.Visible = xlSheetVisible Next End Sub 

这里的另一个问题是用户可以通过按住SHIFT键来停止所有的macros(如果我记得正确的话)。 不用说…这不是太安全。 然后再次,Excel文件不可知的安全性令人难以置信。