我正在编写一个VBA宏来密码保护Excel工作簿中的工作表。它工作得很好,除了我有以下问题:
如果有人输入了错误的密码(甚至多次),则要求输入密码的弹出框不会消失。如果他们不知道密码,我不确定是否有办法隐藏工作表或退出弹出窗口。否则,他们会使用我当前的代码陷入无限循环,无法退出弹出框。
如果用户输入的密码不正确,我希望它能转到另一张工作表。
有没有办法做到这一点?
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MySheets As String, Response As String
MySheet = "Balance Sheet"
If ActiveSheet.Name = MySheet Then
ActiveSheet.Visible = False
Response = InputBox("Only authorized are permitted to view the Balance Sheet. Enter password to view.")
If Response = "password123" Then
Sheets(MySheet).Visible = True
Application.EnableEvents = False
Sheets(MySheet).Select
Application.EnableEvents = True
End If
Sheets(MySheet).Activate
Sheets(MySheet).Visible = True
Else
Exit Sub
End If