excel如何实现在任意单元格中输入内容后自动在输入内容的前面加入从另一sheet中匹配出来字段?

比如sheet1为基础数据:

我希望在sheet2中任意单元格中输入“小明”,回车后显示为“今年5岁了 小明”,就是将小明在sheet1中匹配的字段加到小明前面再加入一个空格?

再帮帮忙吧,万分感激啊!!

举例说明。

第一步:建立一张学号及姓名对照表。如图:

第二步:在F2输入公式:=IFERROR(VLOOKUP(E:E,A:B,2,0),""),然后将该公式复制黏贴到F3:F30

第三步:在E2输入A003,E3输入A007,结果如图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-19
 Private Sub Worksheet_Change(ByVal Target As Range)
Dim xx As Range, i As Long
For Each xx In Target
i = 2
Do While Sheet1.Cells(i, 1).Value <> ""
    If Sheet1.Cells(i, 1).Value = xx.Value Then
        xx.Value = Sheet1.Cells(i, 2).Value & " " & xx.Value
        Exit Do
    End If
    i = i + 1
Loop
Next
End Sub

按Alt+F11进入VBE,双击“sheet2“,复制粘贴上面的代码,退出VBE就可以了

追问

您的代码完美解决了问题,谢谢您的帮助啊!!!

第2个回答  推荐于2016-01-06
excel如何实现在任意单元格中输入内容后自动在输入内容的前面加入从另一sheet中匹配出来字段的解决方法如下:
1、打开要处理的文档,
2、按alt+f11,打开vba编辑窗口,
3、双击sheet2,
4、在右侧的窗口中输入下面的代码段:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strBf As String, i As Integer
Dim SglCel As Range
i = 2
For Each SglCel In Target
Do While Sheet1.Cells(i, 1).Value <> ""
If Sheet1.Cells(i, 1).Value = SglCel.Value Then
SglCel.Value = Sheet1.Cells(i, 2).Value & " " & SglCel.Value
Exit Do
End If
i = i + 1
Loop
Next
End Sub
这样就可以了。
第3个回答  2015-04-19
你可以借助VLOOKUP函数间接实现此功能,一次是不能达到这个效果的追问

我需要在任意单元格中输入内容后均按此匹配显示,用公式肯定不行,VBA 是可以的,但是我不会,需要请教各位大神啊!

追答

那就只能用VBA了

第4个回答  2015-04-19
在一个单元格输入后,得到相对应的内容在同一个单元格,只能是VBA啦。(统一加数据单位的自定义格式除外。)
相似回答