有没有办法找到列中的任何值是否小于允许的限制? 例如: 我有一个A列,它在B列中进行任何更改效果值时都有可变数据。
我想设置约束,以便如果列A使列B中的任何值小于7(通过增加或减少列A中的值),则列A中的该值将被拒绝,而列A值将不会进一步更新(增加或减少)。最后一个值将被设置为final。
所以这里的概念是遍历A列中的每一行并尝试增加或减少值,直到满足条件。
注意:A列中的值必须为正
示例1:
Please follow this image link 下面附有一份样本excel表。
我只想要一种方法来调整A列中的值,以便B列值处于允许的限制范围内。 (即不低于7)。这可以通过更改A列中的值然后检查B列的所有行的允许限制来实现,为此我需要在每次更改值时循环遍历B列中的每一行,这可能需要更多的处理时间(减慢VBA)。我需要在没有循环的情况下实现这一点。
TIA
答案 0 :(得分:1)
您可以尝试使用下面的基于工作表的事件来捕获A列中发生的更改。右键单击要执行此操作的工作表选项卡,然后粘贴下面的代码。 在备份上进行测试。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, rngLast As Range
If Target.Column = 1 Then
Set rngLast = Cells.Find("*", [A1], xlFormulas, xlWhole, , xlPrevious)
Application.EnableEvents = False
For Each rng In Range("B2:B" & rngLast.Row) '\\ Adjust Start Row of Column B
If rng.Value < 7 Then
MsgBox "Value going below specified limit!", vbExclamation
Application.Undo
End If
Next
Application.EnableEvents = True
End If
End Sub