细胞上的数据验证取决于经过验证的细胞

时间:2018-03-09 17:35:11

标签: excel validation

我想在以下情况下在Excel 2013中应用验证数据: 我在A13中得到了A1:A12中值的总和。 我想在单元格A1:A12中应用数据验证,使得A13 <500。 我试图以经典的方式做到这一点,但我有以下问题:如果,此刻,A13例如是300,我在A7中插入230(那是空的),如果我从我输入键盘,我正确地得到了错误。 如果我输入230并且没有输入回车,我点击任何其他单元格,这个值被接受,A13变为530.

有没有办法避免这种情况?

2 个答案:

答案 0 :(得分:1)

我用几个宏解决了它

Dim oldValue

Public Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A1:A12")

    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        For Each cell In Target.Cells
            If Range("A13").Value > 500 Then
                MsgBox "Error: A13 can not be greater than 500"
                cell.Value = oldValue
            End If
        Next
    End If
End Sub

Public Sub Worksheet_SelectionChange(ByVal Target As Range)
    oldValue = Target.Cells.Value
End Sub

答案 1 :(得分:0)

对于您的数据验证,请在下面输入一个数字:

=500+A1-SUM(A$1:A$12)

(对于单元格A1 - 您可以轻松地将该条件应用于其他单元格)