其实就是对数据源进行vlookup数据查询。下图A-E列为详细数据,H列为需要进行vlookup查询的数据。匹配不到保留下来并保持空项。
代码如下,数组arr是需要进行查询的数据,brr则是查询来源的数组。结果写进了sheet2.
function 匹配数据(){ let sht=Sheets.Item(1) var arr=sht.Range("H2:H"+ sht.Cells(sht.Rows.Count,8).End(3).Row).Value2.flat() var cur=sht.Range("A1").CurrentRegion var brr=sht.Range(sht.Cells(2,2),sht.Cells(cur.Rows.Count-1,cur.Columns.Count)).Value2 var b=[["编码","店铺名称","商品","数量","单价"]] arr.forEach((x,index)=>{ var a=brr.filter(v=>x==v[0]).flat(); b.push((a.length)?[index+1,...a]:[index+1,x]); }) Sheets.Item(2).UsedRange.Clear() Sheets.Item(2).Range("A1").Resize(b.length,b[0].length).Value2=b }