我正在尝试创建一个循环宏来节省项目工作期间的时间。
我需要做的是复制表1中A列中的数字,然后找到表2中A列中的数字(这些是同一文档中的单独表格)之后我需要复制C列中的文本对应的行,然后将其粘贴到工作表1的C列中。
对不起,这可能没有多大意义......
我没有多少使用VBA的经验,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
我认为你不需要VBA。如果您想做我认为您想做的事情,请使用
=VLOOKUP(Sheet1!A1, Sheet2!A:C, 3)
将其放入C1(表1)中,然后将其复制下来。
Documentation for VLOOKUP here.基本上,(Sheet1!A1)是你正在寻找的(Sheet2!A:C),你正在寻找它,(3)是A范围内的列:您从中获取信息的C(C列)。如果由于某种原因,您在B列或C列中的数据与A中的数据相匹配(使VLOOKUP无用),您可以使用:
=INDEX(Sheet2!C:C,MATCH(Sheet1!A1,Sheet2!A:A,0))
相反,它只搜索单个列。
答案 1 :(得分:1)
这听起来像是VLOOKUP
说明Sheet1
上的数据如下所示:
+-------+--------+-------+
| Col A | Col. B | Col C |
+-------+--------+-------+
| 1 | | |
+-------+--------+-------+
| 2 | | |
+-------+--------+-------+
| 3 | | |
+-------+--------+-------+
您想在Sheet2
中查找值1,2,3等,这可能如下所示:
+-------+--------+-------+
| Col A | Col. B | Col C |
+-------+--------+-------+
| 1 | | A |
+-------+--------+-------+
| 2 | | B |
+-------+--------+-------+
| 3 | | C |
+-------+--------+-------+
如果我正确理解了您的问题,您希望在Sheet1
的A列中查找值,并将Sheet2
列C中的相应匹配项返回到Sheet1
的C列。< / p>
在Sheet1
的C列中添加VLOOKUP
公式,如下所示:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
lookup_value 是您要查找的内容,在这种情况下是Sheet1
列A的值。
table_array 是您要查找以查找lookup_value的单元格。使用此查找时,此table_array中最左侧的列将用作要匹配的列。在这种情况下,它是'Sheet2'!A1:C3
如果找到匹配项, col_index_num 是您要返回的相应列。在这种情况下,它是第3列。
最后,如果您想要完全匹配, [range_lookup] 应设置为FALSE
;如果您想要返回第一个近似匹配,则应设置为TRUE
。
因此,在这种情况下,我们要将VLOOKUP
公式添加到Sheet1
的C列的第一行,如下所示:
+-------+--------+-----------------------------------------+
| Col A | Col. B | Col C |
+-------+--------+-----------------------------------------+
| 1 | | =VLOOKUP(A2,'Sheet2'!$A$1:$C$3,3,FALSE) |
+-------+--------+-----------------------------------------+
| 2 | | |
+-------+--------+-----------------------------------------+
| 3 | | |
+-------+--------+-----------------------------------------+
按Enter键获取结果。将公式拖到列的其余部分。
几点说明:
Sheet2
的C列中的匹配项,则该函数返回#N/A
错误,您可以使用IFERROR
函数Sheet2
的C列中的第一个匹配项,如果有多个匹配项,则需要考虑调整查找以使其足够具体,以使每个查找只有一个对应的值您可以在MSDN上阅读有关VLOOKUP功能的内容,并查看一些教程here。特别是MSDN文章的常见问题和最佳实践部分。
答案 2 :(得分:0)
同意kfitcher,vba并不需要。 vlookup的替代方法是索引/匹配,如下所示
=INDEX(Sheet2!C:C,MATCH(Sheet1!A2,Sheet2!A:A,0))