连续区域数据相同合并单元格一种方法

矩形区域数据相同,单元格进行合并。方法仅供参考。

function test2(base_row,base_column,end_row,end_column){	
console.clear();	
let baserow = base_row ;	
let basecolumn= base_column;	
let startrow = 0;	
let startcolumn = 0;	
let endrow = end_row;	
let endcolumn = end_column;	
let temprow = 1;	
let tempcolumn=1;	
let arr = Array(endrow-baserow+1).fill().map(()=>Array(endcolumn-basecolumn+1).fill(1));		
let resetstartvalue = false;	
while(basecolumn+startcolumn<=endcolumn && baserow+startrow <=endrow) {		
temprow = 0;		
tempcolumn=0;				
console.log("startrow:" + startrow+ ",startcolumn:"+ startcolumn)				
let cellvalue = Cells.Item(baserow+startrow,basecolumn+startcolumn).Value2;		
resetstartvalue = false;				
for(let j = startrow;j<endrow-baserow+1;j++){							
if(ActiveSheet.Cells.Item(j+baserow,basecolumn+startcolumn).Value2 == cellvalue){					
//arr[j][startcolumn] = 0;				
temprow = j;								
}else{			break;				}		}							
for(let i=startcolumn;i<endcolumn-basecolumn+1;i++){							
if(ActiveSheet.Cells.Item(baserow+startrow,basecolumn+i).Value2 == cellvalue){					
//arr[startrow][i] = 0;									
tempcolumn = i;					
}else{									break;				}						}				
console.log("temprow:"+ temprow+ ",tempcolumn:" + tempcolumn )		
for(let i=startcolumn;i<=tempcolumn;i++){			
for(let j=startrow;j<=temprow;j++){				
arr[j][i]=0;							}				}						
if(temprow>0 || tempcolumn>0){			
console.log("合并区域起始行,列:"+ (baserow+startrow) + ","+(basecolumn+startcolumn) + "合并区域结束行,列:" +(baserow+temprow)+","+(basecolumn+tempcolumn))			
Range(Cells.Item(baserow+startrow,basecolumn+startcolumn),Cells.Item(baserow+temprow,basecolumn+tempcolumn)).Merge();		}				
resetstartvalue = false;		
for(let j=0;j<endcolumn-basecolumn+1;j++){			
for(let i=0;i<endrow-baserow+1;i++){				
if(arr[i][j]==1){					
startrow = i;					
startcolumn = j;					
resetstartvalue =true;					break;				}			}			
if(resetstartvalue){								
break;			}		}		
if(!resetstartvalue){			
console.log("not found!")				
startrow = endrow+1;				
startcolumn = endcolumn+1;		}	}		
console.log(JSON.stringify(arr))			
}

黑龙江省
浏览 214
1
5
分享
5 +1
1
1 +1
全部评论 1
 
Hypnotist
Hypnotist

WPS产品体验官

666,大佬
· 四川省
回复