未锁定范围中的动态锁定单元格



在我的工作表中,我用密码锁定了整个工作表,但没有锁定范围。

未锁定范围是=A14:H50,我想使范围=C14:C50成为基于BX值的动态锁定范围。例如,如果B14值locked,则应锁定C14。如果B14值为notlocked,则不应锁定C14。

有很多动态锁定单元格的代码,但我不知道如果没有范围的整个工作表也被锁定了,它是如何工作的。

请复制工作表代码模块中的下一个事件代码。代码本身,无需密码即可保护和取消保护。如果您的工作表受密码保护,请更改pass = "myPassword":中的pass = ""

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B14:B50")) Is Nothing Then
Dim pass As String
pass = "" 'set the password. Otherwise, protection/unprotection is done without a pass
If Target.Cells.Count > 1 Then Exit Sub
ActiveSheet.Unprotect pass
If Target.Value = "locked" Then
Target.Offset(0, 1).Locked = True
ElseIf Target.Value = "notlocked" Then
Target.Offset(0, 1).Locked = True
End If
ActiveSheet.Protect pass
End If
End Sub

最新更新