一、个人觉得没必要用宏来完成。先给你公式(在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