使用输入框设置密码 hide/unhide excel sheet

Setting up password using inputbox to hide/unhide excel sheet

我最近制作了一个MCQ测试模块,可以帮助用题库中的随机问题准备试卷,并进行测试和计算分数。

全部编码完成。由于这是 MCQ 测试宏,因此有一个名为“Admin CP”的 sheet 将完成大部分工作,如生成问题、设置计时器、设置通过百分比等。此 sheet 将被隐藏使用另一个简单的宏 xlveryhidden。为了取消隐藏这个 sheet,我想设置一些东西,让用户在 Admin CP 中输入密码,然后隐藏作品 sheets。

如果管理员想再次访问此 sheet,他将必须输入密码,该密码将使用之前设置的密码进行验证。

下面是我编写的代码的屏幕截图。 “IF、Else、Then 和=”似乎不起作用。它要么抛出密码不正确的警告消息,要么取消隐藏 sheets,即使密码不正确也是如此。

非常感谢任何帮助。提前致谢。

https://ibb.co/9Yyqh0V

兄弟,你还没有给inpu2赋值;所以如果你想比较 inpu1 和 inpu2。您应该将先前存储的值分配给 inpu2。只有这样你才应该比较它们。您可以通过两个简单的步骤完成此操作。

第 1 步:创建一个新的隐藏 sheet 来存储通行证

第 2 步:从 sheet 检索通行证以检查

Option Compare Text

Sub passToLock()
    Dim newSheetObj As Worksheet, inpu2 As String
    Set newSheetObj = Worksheets.Add
    
    newSheetObj.Name = "hiddenPass"           ' to refer to later on
    newSheetObj.Visible = xlSheetVeryHidden   ' to make the sheet hidden
    inpu2 = Application.InputBox("Enter The Password") ' to get initial password
    newSheetObj.Range("A1").Value = inpu2     ' to store the password in hidden sheet
    
    Set newSheetObj = Nothing
End Sub

Sub Unlock2()

    Dim inpu1 As String, inpu2 As String
    
    inpu2 = Sheets("hiddenPass").Range("A1").Value
    inpu1 = Application.InputBox("Enter The Password")
    
    If inpu1 = inpu2 Then Worksheets("Admin CP").Visible = xlSheetVisible

End Sub

我相信您可以调整代码以满足您的需求。