【问题标题】:Multiple Permission Layers in ExcelExcel 中的多个权限层
【发布时间】:2015-05-14 13:52:33
【问题描述】:

我目前正在处理 Excel 中的项目仪表板,我需要有两层访问权限: - 第 1 层:管理员。这是密码保护用户不应该接触的所有单元格。第 2 层:项目经理这是为了让拥有该特定工作表密码的项目经理可以编辑某些范围。

基本上我想锁定工作表,但有一个额外的密码来解锁工作表上的几个单元格。

这可能吗?我在此处和 Google 搜索中四处查看,但没有发现任何有用的信息。

感谢您的宝贵时间! 乔尔

【问题讨论】:

  • 我对 VBA 很不满意,我只是在搞乱保护工作表、保护工作簿和允许用户编辑范围功能。我假设答案在 VBA 中;我只是不知道从哪里开始。只要朝着正确的方向轻推,我相信我能弄明白。
  • 这是正确的方法。我会围绕保护做一些事情。您需要确保您希望允许 Layer2 能够编辑锁定或解锁的单元格,然后保护工作表,以便您只能单击锁定或解锁。这样,除了您指定的单元格之外,所有其他单元格都无法编辑

标签: vba excel


【解决方案1】:

最简单的入门方法(一种非常简单的方法,管理员与 PM 方法)涉及保护整个工作表(并保持其受到保护),但有选择地解锁允许的范围。这里需要注意的是:所有工作表单元格必须完全锁定在 Workbook_Open 上。这可以使用工作簿事件来完成(如果您需要帮助,请询问)。

在我下面分享的代码中,有几点需要注意。 rngAdmin 是指管理员应该有权访问的单元格。同样,rngProjectManager 指的是 PM 应该有权访问的单元格。 sSheetPassword 是实际工作表密码,如Protect Sheet Excel 功能中的设置。其他两个密码仅驻留在我们的模块中。显然,所有这些都应该改成更安全的东西。

如果输入管理员密码,则管理员范围被解锁。如果输入 PM 密码,则 PM 范围解锁。如果输入的密码不正确,则该表为只读。想法?

Sub MultipleLayersofProtection()
    Dim rngAdmin As Range
    Dim rngProjectManager As Range
    Dim sUserEnteredPW As String

    Const sSheetPassword = "yupyupyup"
    Const sAdminPW As String = "ABC123"
    Const sProjectManagerPW As String = "LMNOP"


    Set rngAdmin = Sheet1.Range("A1:C50")
    Set rngProjectManager = Union(Sheet1.Range("A1:A5"), Sheet1.Range("C1:C5"))

    sUserEnteredPW = Application.InputBox("Please enter the password:", , , , , , , 2)

    Select Case sUserEnteredPW
        Case sAdminPW
            Sheet1.Unprotect Password:=sSheetPassword
            rngAdmin.Locked = False
            Sheet1.Protect Password:=sSheetPassword
            MsgBox ("Admin Access")
        Case sProjectManagerPW
            Sheet1.Unprotect Password:=sSheetPassword
            rngProjectManager.Locked = False
            Sheet1.Protect Password:=sSheetPassword
            MsgBox ("PM Access")
        Case Else
            MsgBox ("Read only access")
    End Select


End Sub

【讨论】:

    猜你喜欢
    • 2015-09-27
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多