在使所有表单可见之前,请input密码框

我正在尝试实现一个input框,供用户在代码运行之前input密码以使所有工作表可见。

下面的代码是在ThisWorkbook内,我想添加代码在这里input框popup,用户从预设的密码input密码

 Private Sub Workbook_Open() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws Sheets("START").Visible = xlVeryHidden Sheets("Contents").Select Range("A1").Select MsgBox "Please refer to user guide for any help", vbInformation + vbOKOnly, "PRODUCT BIBLE" 

不知道这是否会帮助任何人,但我设法通过,用户将不得不input密码打开所有的工作表。 如果他们不这样做,它会循环,直到密码是正确的(可能可以清理,但它的工作原理)。

 Private Sub Workbook_Open() Dim strName As String Do Until strName = "Bible" strName = InputBox("Enter the Password:", "Password") On Error Resume Next If strName = "Bible" Then MsgBox "Correct Password", vbInformation On Error GoTo 0 ElseIf strName = False Then MsgBox "You have entered the incorrect password ", vbInformation End If Loop Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws Sheets("START").Visible = xlVeryHidden Sheets("Contents").Select Range("A1").Select MsgBox "Please refer to user guide for any help", vbInformation + vbOKOnly, "PRODUCT BIBLE" End Sub 

我个人会将密码保护在文件上:

转到文件选项卡,点击保护工作簿,然后用密码encryption。

(可能因Excel版本而异)

看到更多的细节。

https://support.office.com/en-us/article/Password-protect-documents-workbooks-and-presentations-ef163677-3195-40ba-885a-d50fa2bb6b68

我认为另一个select是清洁的,对于承诺访问他们不应该访问的数据的用户更安全,就是让你的工作簿试图从共享networking位置的只读文件中提取机密数据,有限的用户有权访问。

这将安全性放在你的手和IT之外,这意味着更安全,更灵活[添加新用户,不需要手动添encryption码,只需将该人员添加到能够访问networking的用户列表驱动器],并避免上述状态的问题,如强迫用户使用任务pipe理器来closuresExcel,如果他们忘记了密码。 实际上,用户根本不需要input密码,所以用户体验也更加友好。