我在这个网站和其他几个网站上读了很多关于这个问题的文章,但是还没有找到一个可行的解决方案。
我有一个为工作而构建的简单计算器,如果在D7中输入了除0以外的数值,则需要锁定D6,如果值为零,则解锁。如果在D6中输入了0以外的值,也可以锁定D7,如果值为零,则解锁。这是一种circular...however,我不希望有人能够在一个单元格中输入一个值,如果另一个单元格中有一个值。
此外,除了D4、D5、D6和D7之外,工作表中的所有单元总是被锁定。D4 & D5将永远被解锁。
下面是我目前对这一工作的尝试。
代码
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代码
问题是,在D6中输入值后,输入0时会出现错误,而在D7中输入值时,当D6为0时,通常只会得到一个错误。
无法设置Range类的锁定属性。
发布于 2018-05-25 19:58:41
也许你想要这个
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 Subhttps://stackoverflow.com/questions/50535610
复制相似问题