是否可以根据另一个单元格中的值来保护/取消保护某个单元格?

时间:2018-10-29 19:49:04

标签: excel vba excel-vba excel-formula

我想通过条件格式(或Excel中的其他工具)完成以下操作,

如果A1中的值大于0,请保护C1。 如果A1中的值小于或等于0,请取消保护c1。

我不确定这是否可行,因为在尝试格式化单元格时,它只有数字,格式,边框和填充选项。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用VBA解决方案来解决此问题。

为使该解决方案起作用,您需要将工作表处于“受保护”状态时将给定工作表上的所有单元格格式化为“未锁定”,但需要保持锁定状态的单元格C1除外。

在要锁定单元格的工作表的代码模块中插入以下代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Me.Range("A1").AddressLocal = Target.AddressLocal And _
            Not (Me.Range("A1").Value2 = 0) Then
        Me.Protect
    ElseIf Me.Range("A1").AddressLocal = Target.AddressLocal Then
        Me.Unprotect
    End If
End Sub