当另一个单元格值为true时,我想阻止一些单元格

我想知道我的Excel中的我的VBA代码中的错误,并希望一些单元格被封锁,如果另一个单元格的值为true。

Private Sub Worksheet_Change(ByVal Target As Range) If ActiveSheet.Cells(35, "CD").Value = True Then ActiveSheet.Range("R29:AA38").Locked = True Else ActiveSheet.Range("R29:AA38").Locked = False End If End Sub 

你能帮我吗?

试试这个代码:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Ws As Worksheet Set Ws = Target.Worksheet Ws.Unprotect "pw" ' change to your password If CBool(Ws.Cells(35, "CD")) = True Then If MsgBox("Do you want to Lock the cells", vbYesNo) = vbYes Then Ws.Range("R29:AA38").Locked = True else Ws.Range("R29:AA38").Locked = False ' delete this line if you don't need it Application.EnableEvents = False Ws.Range("R29:AA38").ClearContents Application.EnableEvents = True end if else Ws.Range("R29:AA38").Locked = False end if Ws.Protect "pw" ' change to your password End Sub