Excel VBA匹配以查找与数组中包含的多个条件匹配的第一个行号

时间:2017-04-21 15:49:52

标签: excel-vba vba excel

我正在尝试找到与我的代码中位于两列和数组中的两个条件相匹配的第一个行号。

例如:

market = Array("market1", "market2", "market3"...)
report = Array("report1", "report2", "Report3"...)

rownumber = Application.Match(Range("B:B" & "L:L"), market(i) & report(z))
ws2.Range("N2").Value = rownumber

有没有办法做到这一点?如果您还有其他需要,请告诉我

提前致谢

1 个答案:

答案 0 :(得分:1)

这是一个数组公式,因此无法使用Application.Match完成。您可以使用评估。

market = Array("market1", "market2", "market3"...)
report = Array("report1", "report2", "Report3"...)
Dim rownumber As Variant
rownumber = ws2.Evaluate("IFERROR(Match(""" & market(0) & report(0) & """,B:B & L:L, 0),""Not Found"")")
ws2.Range("N2").Value = rownumber

如果在ws2找不到搜索范围,请将ws2前面的.Evaluate更改为找到数据的工作表。

但是当使用数组公式时,不应使用完整的列引用,尝试查找数据的范围并仅引用这些单元格。