我有五列。
例如
列包含
等数据 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帮助我.....
答案 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真的有些过分,正如他所指出的那样,可移植性和安全性都是重大缺陷。偏移是一个很好的选择。