我想在以下情况下在Excel 2013中应用验证数据: 我在A13中得到了A1:A12中值的总和。 我想在单元格A1:A12中应用数据验证,使得A13 <500。 我试图以经典的方式做到这一点,但我有以下问题:如果,此刻,A13例如是300,我在A7中插入230(那是空的),如果我从我输入键盘,我正确地得到了错误。 如果我输入230并且没有输入回车,我点击任何其他单元格,这个值被接受,A13变为530.
有没有办法避免这种情况?
答案 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
- 您可以轻松地将该条件应用于其他单元格)