使用给定值作为参数在excel电子表格之间复制数据

时间:2012-05-29 15:11:05

标签: excel vba

说我有两个电子表格。

其中一个电子表格有一个这样的表格:

  **Sheet 1**
  A        B        C        D
1 Name     Age      Rank     Number

2 George   22       Master   12

3 Paul     21       Acolyte  22

4 Jimmy    32       Horse    33

5 Agnor    12       Cheetah  90

另一个电子表格如下所示:

  **Sheet 2**
  A        B        C        D
1 Name     Age      Rank     Number

2 George   

3 Paul     21                22

4 Agnor    

我想将Ages从第1页复制到第2页。所以我会复制George,Paul和Agnor的年龄,并忽略Jimmy。我应该使用哪个函数根据现有值复制数据?

是否有类似的东西:

foreach VAL in Sheet1
if(Sheet1.Name.EqualsIgnoreCase(Sheet2.Name))
{
    Sheet2.Age = Sheet1.Age;
}

我查了一下,很多人都说要使用VLookup,但我无法弄清楚它是如何应用的。

修改

我在这里找到了一个类似已解决的问题(不知道我怎么想错过):Compare and copy data between worksheets

但是,我对如何实现这一点仍然有点不稳定(我使用的是Excel 2007)。

1 个答案:

答案 0 :(得分:1)

vlookup是最简单的方法。
我将使用sheet2中的单元格B2作为参考来尝试解释函数
=VLOOKUP(A2,Sheet1!$A$2:$D$5,2,FALSE)
第一个参数是您用于查找的数据 - 如果您在表格周围复制公式,则可能需要将其更改为$A2 第二个参数是数据是excel需要找到您在第一个参数中引用的值 - 使用美元符号。数据不倾向于移动 第三个参数告诉excel返回什么信息--2表示给我第二条数据
最后一个参数告诉excel它是否可以使用紧密匹配(FALSE完全匹配)

现在关注Excel并查看它返回的内容.....

首先,它在数据中查找George(它知道它必须与第四个参数完全匹配)
接下来,它找到行George -- 22 -- Master -- 12并为函数提供第二个值(在这种情况下为22