Excel VBA:从最大值循环并检查条件

我正在尝试写一个Excel VBA代码,它执行以下操作:

  1. find列中最大的值
  2. 检查2条件的最大值:
    • 如果满足2个条件,拉出最大值
    • 如果不满足2个条件,则转到第二大值
  3. 重复上述步骤,直到find满足2个条件的一个值

例如(我有成千上万的数据和多张,这只是为了简化),

Col A Col B Col C Col D

5 0 0苹果

10 1 0苹果

15(-1)0橙色

20 0 0苹果

  1. A栏最大值是20
  2. 检查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