我在这个网站和其他几个网站上做过相当多的阅读,但还没有找到一个可行的解决方案。
我有一个简单的计算器,用于工作,如果在D6中输入0以外的数值,我们需要锁定D7,如果值为零则解锁。如果在D7中输入0以外的值,则还锁定D6,如果值为零则解锁。这是一种循环......但是如果另一个单元格中有值,我不希望有人能够在一个单元格中输入值。
此外,除D4,D5,D6和D7外,工作表中的所有单元格始终处于锁定状态。 D4& D5将永远被解锁。
以下是我目前正在开展的工作。
CODE
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D6").Value <> 0 Then
ActiveSheet.Unprotect ""
Range("D7").Locked = True
ElseIf Range("D6").Value = 0 Then
Range("D7").Locked = False
ActiveSheet.Protect ""
End If
If Range("D7").Value <> 0 Then
ActiveSheet.Unprotect ""
Range("D6").Locked = True
ElseIf Range("D7").Value = 0 Then
Range("D6").Locked = False
ActiveSheet.Protect ""
End If
End Sub
CODE
问题是我在获得一个值后在D6中输入0时出错,然后在D6为0时在D7中输入值时,一般会出现错误。
无法设置Range类的Locked属性。
答案 0 :(得分:1)
也许你想要这个
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect ""
If Range("D6").Value <> 0 Then
Range("D7").Locked = True
ElseIf Range("D6").Value = 0 Then
Range("D7").Locked = False
End If
If Range("D7").Value <> 0 Then
Range("D6").Locked = True
ElseIf Range("D7").Value = 0 Then
Range("D6").Locked = False
End If
ActiveSheet.Protect ""
End Sub