如果在另一个工作表中找到的值到第三个工作表,则从工作表复制整行

时间:2015-05-07 05:18:21

标签: excel vba excel-vba

尝试解决VBA /宏或Excel功能的问题,但没有运气。

我有3张纸:

Source
Detail Listing
Final

在我的 Source 表格中,我有一个唯一编号列表

A
-------
111
222
333
444

在我的 Detail Listing 中,我有这样的数据:

A      B       C        D 
-----------------------------
333    dog     fly      9
777    cat     wasp     2
111    bird    ladybug  8

Final 表格中,我希望详细信息列表表格中的所有行与源表格中的值匹配,如下所示:

 A      B       C        D 
---------------------------------
 333    dog     fly      9 
 111    bird    ladybug  8

我在工作表中尝试了Vlookup,但这只给了我一次单元格结果。如果找到匹配,我需要整行。

2 个答案:

答案 0 :(得分:0)

而不是尝试在详细列表中查找源代码中的值,我建议尝试反向操作,在detail_listing上运行for循环,对于范围A:A中的每个值,在您的vlookup中查找它source,如果你得到一个匹配,复制for循环中的当前行,否则只是继续下一个单元格。

答案 1 :(得分:0)

为了解决我的问题,我采用了另一种方式,就像Avishay Cohen所说的那样。我在详细信息列表工作表中添加了一个附加列,其中包含此单元格的公式:

=IF(ISNUMBER(MATCH(A2,Source!A:A,0)),"MATCH", "NOT FOUND")

这将列出"匹配"如果我的详细信息列表工作表的A列与我的工作表之间存在匹配项。然后我就过滤了" NOT FOUND"并将我的可见单元格复制到另一个工作表。

ISNUMBER:检查值是否为数字 - 返回TRUE或FALSE
MATCH:返回数组中与指定值匹配的项的相对位置。

我确定有很多方法可以解决这个问题,但这个方法适用于我的情况。