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

Excel VBA匹配以查找与数组中包含的多个条件匹配的第一行号,excel,vba,Excel,Vba,我试图在代码中找到与两列和数组中的两个条件匹配的第一行号 例: 有办法做到这一点吗?如果你还需要什么,请告诉我 提前感谢这是一个数组公式,因此不能用Application.Match完成。您可以使用Evaluate market = Array("market1", "market2", "market3"...) report = Array("report1", "report2", "Report3"...) Dim rownumber As Variant rownumber = ws2

我试图在代码中找到与两列和数组中的两个条件匹配的第一行号

例:

有办法做到这一点吗?如果你还需要什么,请告诉我


提前感谢

这是一个数组公式,因此不能用Application.Match完成。您可以使用Evaluate

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
更改为找到数据的工作表


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

您需要在另一个单元格中嵌套
应用程序。Match
。@ShaiRado因为Match返回一个长值,如何将一个嵌套在另一个单元格中?我没有遵循逻辑,所以我很好奇。谢谢Scott,但是当运行代码时,我会返回一个#值-请advise@messi1335请参见编辑。我把
()
放错地方了。
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