Excel 2016:如何允许不同的用户编辑不同范围的单元格

时间:2018-11-21 15:49:31

标签: excel excel-2016

如何允许不同的用户(JohnPaulMika)编辑工作表中的不同单元格?

  • John将仅编辑单元格A2C5(范围1)
  • Mika将仅编辑单元格E2G5(范围2)
  • Paul将仅编辑单元格H2K5(范围3)

'allow users to edit ranges'中,我没有密码为上述单元格创建了3个范围。每个范围都包含用户名权限。

当我选择range 1时,则allow users to edit ranges选项是disabled。 我无法为其他2个用户申请相同的申请...


有人可以帮助并提供正确的步骤/ vba代码吗?

1 个答案:

答案 0 :(得分:0)

在workbook_beforeclose事件中,我们锁定了所有单元格。在workbook.open事件中,我们获得用户的登录名并有选择地解锁该登录的所需范围。 如果用户未启用宏,则所有内容均受保护;如果用户启用,则仅所需范围可用。 (您必须一次关闭电子表格才能使保护生效)。这假定在公司环境中强制执行登录。此代码进入工作簿模块:

Option Explicit
Const pword = "your password here"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
For Each ws In Worksheets
ws.Unprotect pword
ws.UsedRange.Locked = True
ws.Protect pword
Next ws
End Sub

Private Sub Workbook_Open()
Dim LogonName As String
LogonName = Environ("UserName")
Dim rangetoedit As Range
Select Case LogonName
Case "John"
    Set rangetoedit = Worksheets(1).Range("A2:C5")
Case "Paul"
    Set rangetoedit = Worksheets(1).Range("H2:K5")
Case "Mika"
    Set rangetoedit = Worksheets(1).Range("E2:G5")
End Select
Worksheets(1).Unprotect pword
rangetoedit.Locked = False
Worksheets(1).Protect pword

End Sub

您还将希望用密码保护您的vba代码