0
我的Excel VBA解锁所需的单元格,但在条件更改时无法重新锁定。锁定/解锁变量单元格
在我的Excel实用程序中,如果A1的值为“A”,那么它将在范围A8:A13中找到B1,并解锁行值为B1,列值为“b”且列值为“c”(这里单元格B9和C9被解锁)。我的VBA在这里工作,但是当我改变B1的值(例如“w”到“e”)时,它再次解锁相应的单元,例如单元B10和C10,但它不会重新锁定早先解锁的单元,即单元B9和C9, 。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [A1] = "A" Then
ActiveSheet.Unprotect ("")
[=INDEX(A8:F13,MATCH(B1,A8:A13,0),MATCH("b",A8:F8,0))].Locked = False
[=INDEX(A8:F13,MATCH(B1,A8:A13,0),MATCH("c",A8:F8,0))].Locked = False
ActiveSheet.Protect ("")
Else
ActiveSheet.Unprotect ("")
[=INDEX(A8:F13,MATCH(B1,A8:A13,0),MATCH("b",A8:F8,0))].Locked = True
[=INDEX(A8:F13,MATCH(B1,A8:A13,0),MATCH("c",A8:F8,0))].Locked = True
ActiveSheet.Protect ("")
End If
End Sub