|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
- function test7(){
- Sheets('区').Activate();
- let rngs = [...Range('A3').CurrentRegion.Columns(2).Cells].slice(1);
- let arr = Range('A3').CurrentRegion().slice(1);
- let max = 0;
- arr.forEach(([,,,d]) => max = Math.max(max, d));
- let dic = arr.reduce((x, [a, b, c, d], j) => {
- let dic = x[c] ??= {l:[], r:{}, a:[]};
- let i = dic.r[d] ??= 0;
- (dic.l[i] ??= [c])[max - d + 1] = a + b;
- dic.a.push([rngs[j], i + 1, max - d + 2])
- return ++dic.r[d], x;
- }, {});
- let res = [['类别'].concat([...Array(max+1).keys()].map(x => max-x))];
- Object.keys(dic).forEach(x => res.push(...dic[x].l));
- Range('G2').CurrentRegion.Clear();
- let rng = Range('G2').Resize(res.length, res[0].length);
- rng.Value2 = res;
- let iOffset = 1;
- for(let t in dic){//复制【名字】列的单元格格式
- dic[t].a.forEach(([s, i, j]) => {
- if(s.Hyperlinks.Count > 0) //如果有超链接则复制
- ActiveSheet.Hyperlinks.Add(
- rng.Cells(i+iOffset, j), s.Hyperlinks(1).Address )
- s.Copy();
- rng.Cells(i+iOffset, j).PasteSpecial(xlPasteFormats);
- })
- iOffset += dic[t].l.length;
- }
- Application.CutCopyMode = false;
- rng.Columns(1).RangeEx.MergeSame();//同类自动合并单元格
- rng.Borders.LineStyle = 9;
- }
复制代码 |
评分
-
1
查看全部评分
-
|