首页 > 解决方案 > vba 索引与多个条件匹配

问题描述

我正在尝试将 R1C1 vba 公式转换为“A1”类型的代码。

ActiveCell.Formula2R1C1 = "=INDEX(C3,MATCH(RC[-1]&R2C6,C1&C5,0))"

在电子表格中是: =INDEX($C:$C,MATCH(H2&$F$2,$A:$A&$E:$E,0))

我尝试了以下但我没有得到正确的结果,请指导。

    a = Application.WorksheetFunction.Index(Range("C:C"), _
    Application.WorksheetFunction.Match(Range("H2").Value, Range("A:A"), 0) + _
    Application.WorksheetFunction.Match(Range("F2").Value, Range("E:E"), 0), 0)

谢谢你。

标签: excelvba

解决方案


将公式转换=INDEX($C:$C,MATCH(H2&$F$2,$A:$A&$E:$E,0)为 VBA 并不简单,因为$A:$A&$E:$E. 您需要创建一个数组来连接 A 列和 E 列中的值。此外,Match与数组一起使用时比与Range.

一种解决方法就是在Evaluate这里使用:

Dim a 
a = ActiveSheet.Evaluate("=INDEX($C:$C,MATCH(H2&$F$2,$A:$A&$E:$E,0))")

推荐阅读