楼主需求描述不是很清晰 首先数据结构相同,那表a是否包含表b中所有的身份证号,如果是,用vlookup最简单就可以覆盖,如果不是,用vlookup会出现把表b中有的,而表a中没有的身份证信息备注给覆盖成#N/A 如果存在表b中有,表a中又没有的身份证,同时表b对应的备注有信息,又不希望被#N/A覆盖,可以写一段简单的VBA代码,用完即弃的,所以也不需要太考虑语法和可移植性。 1、sub fugai() 2、 dim rnga as range 3、 dim rngb as range 4、 dim na as integer 5、 dim nb as integer 6、 on error resume next 7、 set rnga = 表a.range("B65536").end(xlup) 8、 na = rnga.row 9、 set rngb = 表b.range("B65536").end(xlup) 10、 nb = rngb.row 11、 for i = 2 to nb 12、 with 表a.range("B2:B" & na) 13、 set rn = .find(表b.range("B" & i)) 14、 表b.range("A" & i) = rn.offset(0,-1) 15、 end with 16、 next i 17、end sub 表a和表b的地方换成表格所在的工作表名称,如果夸工作簿,还需要加上工作簿,或者把两个表暂时放在一个工作簿中。 如果表a和表b的行数是固定的,na和nb直接设置成常量,就不用去获取最后一个非空单元格了,2、3、7-10行的代码就可以不要了