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

时间:2015-03-03 15:42:32

标签: excel formatting protection

我试图在一个标签页上有一个用户无法以任何方式编辑或修改单元格的部分(只有点击),然后是另一个部分,他们只能使用单元格粘贴/复制/删除条目(但不能改变格式)。我没有看到如何为不同的范围分配不同的权限。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用Excel的内置保护功能无法做到这一点。在工作表的其余部分受到保护的情况下,您可以使用不受保护的范围,但不能在不同范围内提供不同程度的保护。

您可以在VBA中执行一些棘手的工作,根据使用worksheet_selectionchange()事件单击的单元格触发不同的工作表保护选项。基本上,您将检测单击target范围,取消保护工作表,然后使用您所选择的特定单元格/范围所需的任何选项重新保护工作表。

类似的东西:

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

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