sheet1每一列都有很多信息,比如:姓名,任务完成日期,完成工作内容等。现在需要编写个VBA程序,在sheet1中“对第一行单行”查找姓名、任务完成日期,并将符合查找条件的工作内容复制到sheet2相应单元格,然后对“下一行查找同样的信息,并将符合条件的工作内容复制到上述单元格的右边”,以此类推。如果没有,则将单元格空着。也就是“多对多”的查找。没法用VLOOKUP是因为符合查找条件的返回数据不止一个,且数据范围太大,并且这只是其中一个小循环,所以只能用VBA,求大佬指教。图中左边为sheet1原表,sheet2输出结果在右边(为了方便观察放在了一张图里,实际上是两个工作表)
excel2007
这个不需要VBA呀,用公式就可以搞定的
如下:
sheet1表结构如下:
sheet2表结构如下:
B2里输入的公式为
=IF(ISERROR(MATCH(A2 & B1,Sheet1!A2:A9 & Sheet1!B2:B9,0)),"",INDEX(Sheet1!C2:C9,MATCH(A2 & B1,Sheet1!A2:A9 & Sheet1!B2:B9,0)))
【注】在B2里复制粘贴以上公式后要同时按下CTRL+SHEFT+ENTER组合键
当你改变A2和B1的值时,B2里就会跳出相应的完成内容