如何使用另一列数据映射两列

时间:2016-06-19 04:10:25

标签: vba excel-vba excel

我有五列。

例如

  1. 第1栏:名称
  2. 第2栏:姓氏
  3. Column3:mapping
  4. 第4列:映射数据
  5. 列包含

    等数据
          Name         Surname        Mapping    Name1   Surname1
      1   ABC          1  AAAA          3         ABC      QQQQ
      2   XYZ          2  XXXX          1         XYZ      AAAA
      3   OPQ          3  QQQQ          4         OPQ     RRRR
      4   RST          4  RRRR          2         RST      XXXX
    

    现在我的目标是使用映射列将name列映射到surname,结果应存储在Name1和Surname1列中。我在Name和Surname列中有更多数据,通过在Mapping列中写入数字,它会自动将姓氏映射到Name(用户可以选择在映射列中输入数字,然后相应地映射数据),结果应该复制到Name1中和Surname1。

    我不知道使用VBA实现这一目标。编码Plz帮助我.....

1 个答案:

答案 0 :(得分:0)

Amar,使用Excel的内置功能肯定有很多方法可以解决这个问题,但是,自从你询问了VBA解决方案后,请转到:

Function Map(n)
    Map = Cells(n + 1, 2)
End Function

将上述代码放入项目的VBA编辑器中,您可以像使用Excel的内置函数一样使用此自定义函数。也就是说,将=Map(C3)输入任何单元格应该会为您提供之后的结果(其中C3是包含映射编号的单元格)。该函数的工作原理是返回[row n(在映射列中定义)+1中的数据(以考虑标题行);第2栏(包含您姓氏的栏目)]。列" Name1"中的数据将始终与列#34;名称"中的列相同(所以它看起来)。所以你的" Name1"列只是=A2

如果这不能解决您的问题,或者您需要进一步的指导,请告诉我。

<强>补编

@Amar,@ freakfeuer的评论很有意思。对于像这样简单的事情,VBA真的有些过分,正如他所指出的那样,可移植性和安全性都是重大缺陷。偏移是一个很好的选择。