Excel - 对一个选项卡上的不同范围具有不同的权限

Excel - having different permissions for different ranges on one tab

我试图在一个选项卡上添加一个用户无法以任何方式(只能点击)编辑或修改单元格的部分,然后在另一个部分中用户只能 paste/copy/delete 条目单元格(但不更改格式)。我看不到如何为不同的范围分配不同的权限。

感谢您的帮助。

使用 Excel 的内置保护是不可能的。你可以有一个不受保护的范围,而其余的工作sheet 受到保护,但你不能在不同的范围内提供不同程度的保护。

您可以在 VBA 中做一些棘手的工作,以根据使用 worksheet_selectionchange() 事件单击的单元格触发不同的工作sheet 保护选项。从本质上讲,您会检测到 target 范围被单击,取消保护 sheet,然后使用您想要的所选特定 cell/range 的任何选项集重新保护 sheet。

类似于:

Private Sub Worksheet_Change(ByVal Target As Range)
    'Detect if cells A1:B10 was clicked, in this case I want them to be able to copy/paste, but not format or anything else
    If Not (Intersect(Target, Me.Range("A1:B10")) Is Nothing) Then
        Me.Unprotect
        Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

    'If it's C1:D10 then allow formatting, but nothing else
    ElseIf Not (Intersect(Target, Me.Range("C1:D10")) Is Nothing) Then
        Me.Unprotect
        Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True

    End If
End Sub

那将进入工作sheet 的 vba,而不是一个单独的模块。如果你走这条路,你也可以在 Protect 和 Unprotect 方法中指定密码。这不是一个 100% 好的选择,因为它依赖于 VBA 并在用户点击时不断保护和取消保护 sheet,但是如果您需要对同一作品的不同范围进行不同的限制sheet,那么这可能是您最好的选择。