一、个人觉得没必要用宏来完成。先给你公式(在D2单元格输入下面的公式):
=IF(C2="","",IF(ISERROR(VLOOKUP(C2,表1!A:B,2,0)),"错误!!",VLOOKUP(C2,表1!A:B,2,0)))
公式完成后复制D2单元格,沿D列从D3向下粘贴到合适的位置。
注意:一定要用你的表1所在的工作表标签(一般为Sheet1)替换公式中的两个表1
说明:
如果C列单元格为空,同行的D列单元格也为空,
如果在表1的A列找不到C列单元格的内容,同行的D列单元格返回“错误!!”,
否则返回与表1的A列同行的B列单元格的内容。
二、VBA代码法,把下面的代码放到VBA的表2中:
Private Sub Worksheet_Change(ByVal Target As Range)
i = Target.Row
'用表2输入科室代码的首行(行号-1)替换下面i>1中的1
If i > 1 And Target.Column = 3 Then
For j = 1 To Sheet1.UsedRange.Rows.Count
If Cells(i, 3) = "" Then
Cells(i, 4) = ""
Exit For
ElseIf Cells(i, 3) = Sheet1.Cells(j, 1) Then
Cells(i, 4) = Sheet1.Cells(j, 2)
Exit For
End If
Cells(i, 4) = "错误!!"
Next
End If
End Sub
不用宏,函数轻松搞定:
在表2的D2单元格输入“=vlookup(c2,sheet1!a:b,2,0)”
注意不包含引号,然后向下填充或复制
其中sheet1是表1的名称,注意核对下
vlookup就能实现。
比如表2C1输入一个代码,那么,相应的D1的公式为
=vlookup(c1,A1,表1!A:B,2,false)
注,其中,表1是第一个表的名字,如果表1名字是sheet1那么公式中也是sheet1,注意区分英文括号和逗号。
上面的公式,如果你表1中没有表2C列填写的内容,返回的是#N/A,所以表1的代码要完善。
在D2中输入
=VLOOKUP(C2,Sheet1!A:B,2,0)
然后向下填充就可以
表2的D: =vlookup(C2,表1!A:B,2,)
下拉