2017-04-21 104 views
0

我想找到匹配位於兩列和我的代碼中的數組中的兩個條件的第一個行號。Excel VBA匹配查找匹配數組中包含的多個條件的第一個行號

例如:

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 

是有辦法做到這一點?讓我知道如果你需要任何東西

在此先感謝

+0

您需要將'Application.Match'嵌套在另一箇中。 –

+0

@ShaiRado作爲MATCH返回一個很長的時間,如何將一個嵌套到另一個工作中?我不遵循邏輯,所以我很好奇。 –

回答

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前面到其上的數據被發現,在工作表中發現的搜索範圍。

但是,當使用數組公式時,不應該使用完整的列引用,試圖找到數據的範圍並引用那些單元格。

+0

感謝斯科特,但是當運行該代碼時,我返回一個#value - 請通知 – messi1335

+0

@ messi1335請參閱編輯。我有'()'在錯誤的地方。 –

+0

就像一個魅力..非常感謝你斯科特 – messi1335