只能选择单列,不支持多列合并
官方api文档,藏得比较深找了好久才找到
https://open.wps.cn/docs/client/wpsLoad
function Macro1()
{
var number = {
toNum:(letter)=>{
var ordA = 'A'.charCodeAt(0);
var arr = letter.split("");
var len = arr.length;
var sum = 0;
for(var i=len-1,j=1;i>=0;i--,j*=26){
sum+=(arr[i].charCodeAt(0)-ordA+1)*j;
}
return sum;
} ,
toLetter:(n)=>{
var ordA = 'A'.charCodeAt(0);
var ordZ = 'Z'.charCodeAt(0);
var len = ordZ - ordA + 1;
var s = "";
while( n > 0 ) {
var m = n % len;
if(m==0){
m=26;
}
s = String.fromCharCode( m-1 + ordA) + s;
n = Math.floor((n-m)/len);
}
return s;
}
}
var obj=Selection
var cells = obj.Cells
var before=''
let cols=[]
var col=''
for(var item of cells){
if(item.Value2!=before.Value2){
console.log(item)
if(cols.length>1){
col=number.toLetter(item.Column)
var start=col+cols[0]
var end=col+cols[cols.length-1]
merge(start+':'+end)
cols=[]
}
}
cols.push(item.Row)
before=item
}
if(cols.length>1){
var start=col+cols[0]
var end=col+cols[cols.length-1]
merge(start+':'+end)
cols=[]
}
}
/**
* Macro2 Macro
* 宏由 Admin 录制,时间: 2022/08/02
*/
function merge(str)
{
var obj=Range(str)
obj.Merge(false);
obj.HorizontalAlignment = xlHAlignCenter;
}