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

时间:2013-04-25 20:02:46

标签: excel vba loops

我正在尝试编写执行以下操作的Excel VBA代码:

  1. 查找列中的最大值
  2. 检查2个条件的最大值:
    • 如果满足2个条件,请拉出最大值
    • 如果不满足2个条件,请转到第二大值
  3. 重复上述步骤,直到找到一个满足2个条件的值
  4. 例如(我有数以千计的数据和多张表,这只是为了简化),

    Col A Col B Col C Col D

    5 0 0 Apple

    10 1 0 Apple

    15(-1)0 Orange

    20 0 0 Apple

    1. A列中最大值为20
    2. 检查2个条件:
      • 在col B或col C
      • 中查找非零和非负数
      • Col D:等于Apple
    3. 输出应该等于10(第2行)

      我不知道该怎么做。请指出正确的方向。谢谢!

2 个答案:

答案 0 :(得分:0)

这应该在A列中获得最高值:

Sub get_max() 
    Dim vMax As Variant 

    vMax = Application.WorksheetFunction _ 
    .Max(Range("A:A")) 

    MsgBox vMax 

End Sub 

如果没有其他人回复,我会看到我能做些什么来找到其余的。

答案 1 :(得分:0)

为什么不使用excel公式?

=MAX(IF(B1:B5>0,A1:A5,IF(C1:C5>0,A1:A5)))

enter image description here

如果您仍然想要VBA,请参阅此

Sub Sample()
    Debug.Print Application.Evaluate("=MAX(IF(B1:B5>0,A1:A5,IF(C1:C5>0,A1:A5)))")
End Sub