gpt4 book ai didi

vba - Excel 中的多个权限层

转载 作者:行者123 更新时间:2023-12-04 22:03:18 25 4
gpt4 key购买 nike

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

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

这可能吗?我在这里环顾四周并使用谷歌搜索,但没有发现任何有用的东西。

谢谢你的时间!
乔尔

最佳答案

最简单的入门方法(一种非常简单的方法,管理员与 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

关于vba - Excel 中的多个权限层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30239176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com