当前位置: 首页 > news >正文

WPS宏实现Sheet页拆分功能

源表格首列名称中一样的分别创建该名称的Sheet页,首先把首列复制导致Sheet2页,根据去重后的值创建新的Sheet页,把源表格数据复制到新建的Sheet页,遍历删除不需要的留下需要的就完成了。

function JIn521() {
    
    //设置工作表对象
    var ws1 = ThisWorkbook.Worksheets('Sheet1');
    //Sheet1页首列复制到Sheet2页并去重
    var lastRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row;
    var sheet1Range1 = ws1.Range(ws1.Cells(1, 1), ws1.Cells(lastRow, 1));
    Worksheets.Add();
    ActiveSheet.Name = "Sheet2"
    var ws2 = ThisWorkbook.Worksheets('Sheet2');
    sheet1Range1.Copy(ws2.Cells(1, 1));
    ws2.Columns(1).EntireColumn.RemoveDuplicates(1, xlYes);
    
    //遍历Sheet2页值创建其余Sheet页
    var st2lastRow = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row;
    var worksheetObjects = {};
    for(var z = 0; z<st2lastRow-1;z++){
        var sheet2Range2ItemValue = ws2.Cells(z+2, 1).Value2;
        var newWorksheet = Worksheets.Add();
        newWorksheet.Name = sheet2Range2ItemValue;
        worksheetObjects[sheet2Range2ItemValue] = newWorksheet;    
    
    //Sheet1页复制到其他页
    var lastCol = ws1.Cells(1, ws1.Columns.Count).End(xlToLeft).Column;
    var sheet1Range2 = ws1.Range(ws1.Cells(1,1),ws1.Cells(lastRow,lastCol));
    sheet1Range2.Copy(worksheetObjects[sheet2Range2ItemValue].Cells(1, 1));

    
    //获取其他页数据及地址
    var arrow = new Array();
    var st5LastRow = worksheetObjects[sheet2Range2ItemValue].Cells(worksheetObjects[sheet2Range2ItemValue].Rows.Count, 1).End(xlUp).Row;
    
    for(var j = 0 ; j < st5LastRow ; j++){
         arrow[j]=j+1;
    }
    
    var arrow1 = new Array();
    
    for (let x = 0; x < arrow.length; x++) {
        var a = worksheetObjects[sheet2Range2ItemValue].Range("A"+arrow[x]).Value2;
        var b = worksheetObjects[sheet2Range2ItemValue].Range("A"+arrow[x]).Address();
        arrow1.push(a+":"+b);
        }
        
    //遍历删除
    for(let i = 0;i<arrow1.length;i++){
        array = arrow1[i].split(':');
        
        if(array[0] != sheet2Range2ItemValue && array[0]!= "地市"){
            worksheetObjects[sheet2Range2ItemValue].Range(array[1]).EntireRow.Clear();
            }
        }
    
    var st5LastRow1 =worksheetObjects[sheet2Range2ItemValue].Cells(worksheetObjects[sheet2Range2ItemValue].Rows.Count, 1).End(xlUp).Row;
    for(let y = st5LastRow1; y>0; y--){
        if(Application.WorksheetFunction.CountA(worksheetObjects[sheet2Range2ItemValue].Rows(y))==0){
            worksheetObjects[sheet2Range2ItemValue].Rows(y).Delete();    
        }
        }
    }    
    //删除源表格Sheet2页,设置不弹出是否删除的提示框,执行删除完毕后开启
    Application.DisplayAlerts = false;
    ws2.Delete();
    Application.DisplayAlerts = true;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 小编需复盘,写练习
  • 数采网关面临的安全挑战
  • 保研考研机试攻略:第六章——搜索(2)
  • docker映射了端口,宿主机不生效
  • 鸿蒙内核源码分析(共享内存) | 进程间最快通讯方式
  • SpringBoot集成kafka-获取生产者发送的消息(阻塞式和非阻塞式获取)
  • 1111111111
  • 微服务:网关路由和登录校验
  • 计算机视觉与视觉大模型对板书检测效果对比
  • 上线eleme项目
  • 怎么整合spring security和JWT
  • 【Unity3D小技巧】Unity3D中实现FPS数值显示功能实现
  • CSS 的了解text-rendering属性
  • 大模型学习笔记 - LLM 之 LLaMA系列(待更新)
  • 缺失ffmpeg.dll要用什么修复方法?快速恢复丢失的ffmpeg.dll文件
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Docker下部署自己的LNMP工作环境
  • ECMAScript6(0):ES6简明参考手册
  • EOS是什么
  • React组件设计模式(一)
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • supervisor 永不挂掉的进程 安装以及使用
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 给第三方使用接口的 URL 签名实现
  • 机器学习 vs. 深度学习
  • 浏览器缓存机制分析
  • 面试遇到的一些题
  • 人脸识别最新开发经验demo
  • 通过几道题目学习二叉搜索树
  • 我看到的前端
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 交换综合实验一
  • ​ArcGIS Pro 如何批量删除字段
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #etcd#安装时出错
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)shell调试方法
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .net MySql
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • ?.的用法
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [100天算法】-目标和(day 79)