我正试图在我的第一张工作表Sheet1
中获得具有特定条件的行号的匹配,并复制格式并将其粘贴到查找值匹配的第二张工作表Sheet2
中。
我在表1中有这样的数据:
A | B | |
---|---|---|
标题 | 条件 | |
1 | color1 | A|
2 | 颜色2 | B |
3 | 颜色4 | C |
4 | 颜色2 | D |
5 | 颜色1 | A |
6 | 颜色2 | D |
这里有一篇关于这个问题的旧文章,但是(正如我之前在评论中提到的(在查找/匹配任何值时,连接值很少是个好主意。使用以下公式:
=MATCH(1,INDEX((Range1=Value1)*(Range2=Value2),),0)
在您当前的代码中,这将导致一个单一的更改:
mtch = Application.Match(lookup1, rng1, 0)
Into;
mtch = ws1.Evaluate("MATCH(1,(A:A=""" & lookup1.Value & """)*(B:B=""" & lookup2.Value & """),0)")
注意1:由于这是一个数组公式,它可能处理量很大,计算时间可能会变得相当长
注意2:工作表公式包含一个嵌套的INDEX()
,不再需要它,因为Evaluate((将处理所有公式,就像它们是CSE输入的一样。