【WPS应用案例】按照内容拆分工作表,免费实现会员功能 您所在的位置:网站首页 筛选拆分表格 【WPS应用案例】按照内容拆分工作表,免费实现会员功能

【WPS应用案例】按照内容拆分工作表,免费实现会员功能

2024-07-03 20:07| 来源: 网络整理| 查看: 265

【案例】以下是一张人员信息表,现在我们需要按照D列的村名将数据拆分为独立工作簿。

相当于下面这个会员功能:

现在我们用JS宏来免费实现这个功能,并且解决会员不能拆分多行标题的问题。

【操作效果】具体操作效果如下:

【代码】具体代码如下,可按ALT+F11打开WPS宏编辑器,复制下面的代码粘贴到编辑器中。

function 按内容拆分数据(){

Application.DisplayAlerts=false; //关闭提醒,防止拆分过程被打断

obj={}; //定义一个字典对象obj,用于存放文件标题

p=ThisWorkbook.Path + '/拆分/'; //拆分文件夹

th=ThisWorkbook.ActiveSheet;

t = parseInt(InputBox("请输入标题行数","标题行数",3)); //标题行数,接受用户输入

col=InputBox("请输入拆分列名","拆分列名",'d'); //拆分列名,接受用户输入

c = th.Range(col+'1').Column; //获取拆分列号

rn=th.Range('a'+Rows.Count).End(xlUp).Row; //最后一行数据行号

tg=Rows("1:"+t); //将标题区域写入单元格对象tg

ar=th.Range(col+(t+1)+':'+col+rn).Value2; //将关键列写入数组ar

ar.forEach(v=>obj[v]=v); //将拆分列写入字典对象obj,目的是去重

for(k of Object.keys(obj)){

let nw = Workbooks.Add(); //新建工作簿

let sh = nw.Sheets.Item(1); //新工作簿的第一张工作表

tg.Copy(sh.Range('a1'));

th.Range('a'+t).AutoFilter(c,k); //筛选数据

th.Range('a'+t).CurrentRegion.Offset(1,0).Copy(

sh.Range('a'+(t+1))); //复制筛选后的数据

nw.SaveAs(p + k + ".xlsx"); //保存表格

nw.Close(); //关闭表格

}

th.Range('a1').AutoFilter(); //取消筛选

Application.DisplayAlerts=true; //开启提醒

alert("拆分完成!"); //提示拆分完成

}

【素材下载】点击下方链接,下载文件本地文件夹,并在文件夹中新建一个名为“拆分”的文件夹。

https://kdocs.cn/l/cbyBlL3hoiCk



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有