Excel VBA - 密码保护工作表

时间:2018-05-15 14:54:54

标签: vba excel-vba excel

我正在编写一个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

0 个答案:

没有答案