Mein Excel VBA entsperrt die gewünschten Zellen, kann aber nicht erneut sperren, wenn sich Kriterien ändern. Wenn in meinem Excel-Dienstprogramm A1 den Wert "A" hat, wird es B1 im Bereich A8: A13 finden und die Zellen der Zeile mit dem Wert B1 und die Spalte mit dem Wert "b" und die Spalte mit dem Wert entsperren "c" (Hier werden die Zellen B9 und C9 entsperrt). Mein VBA funktioniert hier, aber wenn ich den Wert von B1 ändere (zB "w" auf "e", entsperrt er wieder die entsprechenden Zellen, zB die Zellen B10 und C10, aber nicht die zuvor entsperrten Zellen, also die Zellen B9 und C9 .Eine variable Zelle sperren/entsperren
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