|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
JSA代码,供参考
- function 格式转换(){
- const mbarr=[[,"工序"],[,"工序序列"],[,"CNC夹次"],[,"进站次数(正常工艺)"],[,"预计良率"]];
- const arr=Sheets.Item("工艺路线 (整理版)表一").Range("a1").CurrentRegion.Value2;
- const bt=mbarr.reduce((bt,[,x],i)=>(bt[x]=i,bt),{});
- let btarr=arr[0],len=0;
- let obj=arr.slice(1).reduce((obj,x)=>{
- let temp=obj[x[1]]=obj[x[1]] || JSON.parse(JSON.stringify(mbarr));
- temp[0][0]=x[1],temp[0].push(x[0]);
- let n=temp[0].length;
- len=Math.max(len,n);
- for (let j=2;j<btarr.length;j++){
- if (!(btarr[j] in bt)) continue;
- let m=bt[btarr[j]];
- temp[m][0]=x[1],temp[m][n]=x[j];
- }
- return obj;
- },{});
- let res=Object.values(obj).flat();
- Sheets.Item("转换结果").Activate();
- Cells.Delete();
- let rng=Range("a1").Resize(res.length,len);
- rng.Value2=res;
- rng.EntireColumn.AutoFit(); //最佳列宽
- rng.Borders.LineStyle=1,rng.HorizontalAlignment=xlCenter;
- for (let key in obj){
- let k=res.findIndex(x=>x[0]==key);
- Cells.Item(k+1,1).Resize(mbarr.length,1).Merge();
- }
- }
复制代码 |
|