Excel VBA:使用“评估匹配”;或;

Excel VBA:使用“评估匹配”;或;,excel,vba,Excel,Vba,我已经将代码设置为返回一行的行号,该行在a列中包含“Car”,在B列中包含“Fiat”,在G列中包含“Yellow” Set ws1 = Sheets("Database") Set ws2 = Sheets("Insert") Set ws3 = Sheets("Sheet1") 1_cell = "Car" 2_cell = "Fiat" 3_cell = "Yellow" row_num2 = Evaluate("MATCH(1,('" & ws1.Name & "'

我已经将代码设置为返回一行的行号,该行在a列中包含“Car”,在B列中包含“Fiat”,在G列中包含“Yellow”

Set ws1 = Sheets("Database")
Set ws2 = Sheets("Insert")
Set ws3 = Sheets("Sheet1")


1_cell = "Car"
2_cell = "Fiat"
3_cell = "Yellow"

row_num2 = Evaluate("MATCH(1,('" & ws1.Name & "'!A:A=""" & 1_cell & """)*('" & ws1.Name & "'!B:B=""" & 2_cell & """)*('" & ws1.Name & "'!G:G=""" & 3_cell & """),0)")
但我想弄清楚我怎么做才能让它看起来像一个包含“Car”、“Fiat”的行,在G列中它要么有“Yellow”要么有“Green”

我不希望它只产生包含“黄色”的匹配,我希望它能够匹配,如果它在同一列中有“绿色”


有什么想法吗?谢谢你的帮助

未经测试。但是,如果您的代码正常工作,您应该执行此任务吗

1_cell = "Car"
2_cell = "Fiat"
3_cell = "Yellow"
4_cell = "Green"

row_num_1 = Evaluate("MATCH(1,('" & ws1.Name & "'!A:A=""" & 1_cell & """)*('" & ws1.Name & "'!B:B=""" & 2_cell & """)*('" & ws1.Name & "'!G:G=""" & 3_cell & """),0)")
row_num_2 = Evaluate("MATCH(1,('" & ws1.Name & "'!A:A=""" & 1_cell & """)*('" & ws1.Name & "'!B:B=""" & 2_cell & """)*('" & ws1.Name & "'!G:G=""" & 4_cell & """),0)")

row_num2 = WorksheetFunction.Min(row_num_1, row_num_2)

链接谷歌文档电子表格之类的东西,这样别人就很容易更正。这样你可能会更快得到答案。我不允许共享电子表格,所以我在帖子中写了一个概念版本(更改了变量名、工作表名等)。因此,我嵌入的内容必须足以作为我正在使用的示例,不幸的是,在谷歌文档中做一些概念上的事情。首先:变量名称不能以数字开头:cell_1可以,1_cell不可以。我不确定VBA是否允许您这样做,但就是不允许。在我实际的电子表格中,变量的名称不同,我只是在StackOverflow上编辑它们以屏蔽名称。很高兴知道,thanksHow.Min在这种情况下工作吗?比赛是否会产生第一排黄色或绿色。因此,如果第2行为黄色,第5行为绿色,则返回第2行,因为这是第一次出现?是的。。所以基本上你会得到2行。。也许第二排是黄色,第五排是绿色。min会给你2,这应该是与OR匹配函数的结果。我得到“没有找到指定名称的项”啊,请注意,这是我的错误。似乎有用!谢谢你的帮助