Excel VBA:从最大值循环并检查条件
我正在尝试写一个Excel VBA代码,它执行以下操作:
- find列中最大的值
- 检查2条件的最大值:
- 如果满足2个条件,拉出最大值
- 如果不满足2个条件,则转到第二大值
- 重复上述步骤,直到find满足2个条件的一个值
例如(我有成千上万的数据和多张,这只是为了简化),
Col A Col B Col C Col D
5 0 0苹果
10 1 0苹果
15(-1)0橙色
20 0 0苹果
- A栏最大值是20
- 检查2个条件:
- 在col B或col C中寻找非零和非负数
- Col D:等于苹果
输出应该等于10(第2行)
我不知道如何做到这一点。 请指向正确的方向。 谢谢!
这应该在列A中获得最高值:
Sub get_max() Dim vMax As Variant vMax = Application.WorksheetFunction _ .Max(Range("A:A")) MsgBox vMax End Sub
如果没有人回复,我会看看我能做些什么来find其余的。
为什么不是一个优秀的公式?
=MAX(IF(B1:B5>0,A1:A5,IF(C1:C5>0,A1:A5)))
如果你仍然想要VBA,那么看看这个
Sub Sample() Debug.Print Application.Evaluate("=MAX(IF(B1:B5>0,A1:A5,IF(C1:C5>0,A1:A5)))") End Sub