【发布时间】:2018-05-26 03:58:41
【问题描述】:
我已经在这个网站和其他几个网站上阅读了大量关于这个的内容,但还没有找到一个非常有效的解决方案。
我有一个为工作而构建的简单计算器,如果在 D6 中输入非 0 的数值,我们需要锁定 D7,如果值为零,则解锁。如果在 D7 中输入了非 0 的值,则也锁定 D6,如果值为零,则解锁。这是一种循环......但是,如果另一个单元格中有值,我不希望有人能够在一个单元格中输入值。
此外,除了 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 时出现错误,然后在 D6 为 0 时在 D7 中输入值时通常会出现错误。
无法设置 Range 类的 Locked 属性。
【问题讨论】: