【问题标题】:How to code in VBA for requesting password when clicked on a button?单击按钮时如何在 VBA 中编码以请求密码?
【发布时间】:2019-08-28 22:44:27
【问题描述】:

我在其中一张 Excel 表上有一个命令按钮,用于隐藏/取消隐藏其中一张工作表。请参见下面的代码。

但是,现在我想添加管理员输入密码以取消隐藏工作表的功能,否则任何人都可以单击按钮并取消隐藏数据表。

有没有办法强制excel显示正常的输入密码提示取消隐藏?

谢谢

Sub myButton()

ActiveWorkbook.Unprotect

If (Sheets("Sheet2").Visible) Then 
    Sheets("Sheet2").Visible = False 
    Sheets("Sheet1").Select          
Else
    Sheets("Sheet2").Visible = True  
    Sheets("Sheet2").Select          
End If

ActiveWorkbook.Protect Password:="password", structure:=True, Windows:=False

End Sub

【问题讨论】:

    标签: vba password-protection common-dialog


    【解决方案1】:

    您可以使用输入框来收集用户的输入。不完全确定您要做什么,但也许这样的工作。

    Option Explicit
    Sub myButton()
    
        Dim pword As String
    
        pword = InputBox("Please enter a password", "Password Entry")
    
        If (Len(Trim$(pword)) = 0) Then Exit Sub
    
        ActiveWorkbook.Unprotect pword
    
        If (Sheets("Sheet2").Visible) Then
            Sheets("Sheet2").Visible = False
            Sheets("Sheet1").Select
        Else
            Sheets("Sheet2").Visible = True
            Sheets("Sheet2").Select
        End If
    
        ActiveWorkbook.Protect Password:=pword, structure:=True, Windows:=False
    
    End Sub
    

    【讨论】:

    • 此代码部分适用于我。现在我必须添加密码来隐藏和取消隐藏工作表。但是,我不希望用户输入密码来隐藏它,即当点击按钮表 2 时,如果它可见则应该隐藏。
    • 哦,我只是想,即使您添加不同的密码/字符串而不是“pword”,它也会接受并取消隐藏工作表。
    【解决方案2】:

    我可以通过一些调整来解决这个问题。感谢瑞恩的帮助!

    Sub myButton()
    
    Dim pword As String
    
    If (Sheets("Sheet2").Visible) Then
        Sheets("Sheet2").Visible = False
        Sheets("Sheet1").Select
    Else
    
    pword = InputBox("Please enter a password", "Password Entry")
    
    If pword = "password" Then
    
    ActiveWorkbook.Unprotect "password"
    
        Sheets("Sheet2").Visible = True
        Sheets("Sheet2").Select
    
    ActiveWorkbook.Protect Password:="password", structure:=True, Windows:=False
    
    Else
        MsgBox ("Wrong Password")
    End If
    End If
    

    结束子

    【讨论】:

      猜你喜欢
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多