WPS开发 宏代码 按数据类别划分数据保存至新的工作簿

尝试了一下代码,先拆分数据至不同sheet,但是在复制标题时报错,头疼,怎么改!

以下代码可以跑通,就是标题没有复制成功。


function Catpart(){
var qwe=1//InputBox("请输入标题的行数");//标题为1
var cetar=Number(qwe)+1//从标题下一行开始取数2
var ttt="a"+cetar//ttt为2
var qae=1//InputBox("请输入要按第几列的数据进行拆分");//qae为第几列数据
var diao=ActiveSheet//激活sheet表
var BIAO=ActiveSheet.UsedRange.Value2;//表的内容
var arr=BIAO.slice(qwe);//slice截取元素
var clnCount=arr[0].length;//列的数量,其中包含的数值数
var m=new Map();//创建键值对
for (var ar of arr){
if(m.has(ar[qae-1])){
var newarr=m.get(ar[qae-1]).concat([ar]);
m.set(ar[qae-1],newarr);
}else{
m.set(ar[qae-1],[ar])
}
}
for (var [key,val] of m){
var ws=Sheets.Add(null,ActiveSheet);ws.Name=key;//
//diao.Range("a1","XFD"+qwe).Copy();//复制标题行到新的工作表!就是这里报错!
ws.Range("a1").Select();
Selection.PasteSpecial(xlPasteColumnWidths, xlPasteSpecialOperationNone, false, false);
ActiveSheet.Paste(undefined, undefined);
ws.Range(ttt).Resize(val.length,clnCount).Value2=val;//Range(ttt,"XFD"+1048576).Select();
Selection.HorizontalAlignment = xlHAlignCenter;
}
MsgBox("数据拆分完成");
}


function Partion(){

//禁用Excel的弹出警告,避免在拆分过程中弹出确认对话框干扰流程。

Application.DisplayAlerts=false;

//获取当前工作簿的引用,用于后续的操作。

let tb= ThisWorkbook;

//定义保存拆分后的工作簿的路径,其中“/拆分文件夹/”是文件夹的名字,可以自行修改为需要的名字。

let p=tb.Path + "/fy/"

//遍历当前工作簿中的每一个工作表。

for(sh of tb.Sheets){

//将当前工作表复制,这样它就不再属于原来的工作簿,而是新工作簿的一部分。

sh.Copy();

//将新工作簿赋值给变量ab

let ab=ActiveWorkbook

//将新复制的工作簿保存到之前定义的路径下,文件名为原工作表名(如“Sheet1”)后缀为“.xlsx”。
ab.SaveAs(p + sh.Name + ".xlsx");

//关闭新创建的工作簿,因为不需要它继续保持打开状态。

ab.Close();

//执行DoEvents语句以处理其它等待的事件,例如鼠标点击等,提高操作效率。

DoEvents();

}

//恢复Excel的弹出警告功能。

Application.DisplayAlerts=true;

//弹出消息框,通知用户工作簿已经拆分完毕。

MsgBox( "工作簿拆分完毕!");

}

你可能感兴趣的:(wps,restful,后端)