代码之家  ›  专栏  ›  技术社区  ›  gizgok

如何设置密码时,有人在excel中单击取消保护工作表,并创建一个按钮进行编辑

  •  0
  • gizgok  · 技术社区  · 14 年前

    我用这行代码锁定了电子表格中的单元格。

    Range("A1:D23").Select
    Selection.Locked = True
    ActiveSheet.Protect Contents:=True
    

    每当我单击一个单元格时,它都会提示我,该单元格是只读的,可以从“审阅”选项卡中取消工作表的保护,并且可能会提示输入密码。

    我的问题是,它没有促使密码。怎么说他要我先设置密码吗第二,取消保护我想传递他选择要更改的行信息,并想在相邻的readonly单元格用于编辑时创建一个按钮。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Lunatik    14 年前

    我明白你问题的第一部分。您需要将密码参数指定为工作表参数的一部分 Protect 方法:

    Sub lockSheet()
        With ActiveSheet
    
            'Check sheet is not already protected
            If Not .ProtectContents Then
    
                'Clear any existing lock settings
                .Cells.Locked = False
    
                .Range("A1:D23").Locked = True
                .Protect Contents:=True, Password:="pw"
            End If
        End With
    End Sub
    

    请注意,在修改范围之前不必选择该范围,只需将操作直接应用于该范围即可。

    apply a password to the VBA project .

    请回答您在评论中修改的问题的第二部分:

    Private Sub Worksheet_SelectionChange(ByVal target As Range)
        If target.Locked Then
            With ActiveSheet
                .Unprotect
                If Not .ProtectContents Then
                    target.Locked = False
                    .Protect Contents:=True, Password:="pw"
                End If
            End With
        End If
    End Sub