其实就是对数据源进行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
}
浙公网安备 33010602011771号