|
|
多次编辑测试
多次编辑测试:
- function 取消自动换行测试(){
- console.clear();
- let 当前表=ActiveSheet,选中区域=Selection;
- //选中区域.WrapText=false; //不自动换行
-
- let 单元格地址对象=区域内单元格地址(当前表,选中区域); //活动表,选中多区
- for(let 格地址属性 in 单元格地址对象){
- if(单元格地址对象.hasOwnProperty(格地址属性)){
- let 单元格=当前表.Range(格地址属性);
- //取消水平两端对齐
- if(单元格.HorizontalAlignment==-4130){单元格.HorizontalAlignment=1;}
- 单元格.WrapText=false; //不自动换行
- }
- }
-
- 选中区域.EntireRow.AutoFit(); //自适应行高
- }
- //提取表格选区内单元格地址,让可以逐个单元格操作
- //可多个小区块,重叠单元格只处理一次,整行/整列只处理在用区UsedRange内的
- function 区域内单元格地址(表,选区){ //返回单元格地址对象
- let 在用区=表.UsedRange;
- let 单元格对象={},计数=0;
-
- //遍历选区内所有小区块
- console.log("选区地址:"+选区.Address() +"\t在用区:"+ 在用区.Address());
- let 选区地址=选区.Address();
- let 选区块组=选区地址.split(',');
- for(let 块号=0;块号<选区块组.length;块号++){
- let 有效地址=选区块组[块号]; //console.log("块"+块号+":"+选区块组[块号]);
-
- //处理整行、整列的区
- let 区块待判地址=选区块组[块号].replace(/[$]/g,'');
- let 区块在用=Intersect(在用区,表.Range(区块待判地址));
- let 区块无行地址=区块待判地址.replace(/[\d]/g,''); //地址去除数字 //整两行$7:$8
- let 区块无列地址=区块待判地址.replace(/[a-zA-Z]/g,''); //地址去除字母 //整列$D:$D
- if(区块无行地址==':' || 区块无列地址==':'){
- if(区块在用){
- 有效地址=区块在用.Address(); //整行或整列的在用重叠部分
- }else{
- if(区块无行地址==':'){ //整行跳过
- console.log("块"+块号+":"+选区块组[块号]+ "\t//整行不在用区跳过");
- continue;
- }
- if(区块无列地址==':'){ //整列跳过
- console.log("块"+块号+":"+选区块组[块号]+ "\t//整列不在用区跳过");
- continue;
- }
- }
- }
-
- //遍历区内每个单元格
- let 单块有效区=表.Range(有效地址);
- for(let 单元格 of 单块有效区.Cells){
- let 格地址=单元格.Address(0,0);
- if(typeof 单元格对象[格地址]=="undefined"){
- 单元格对象[格地址]=1;计数++; //存单元格地址
- }else{单元格对象[格地址]++;}
- }
- console.log("块"+块号+":"+选区块组[块号] +"\t有效:"+有效地址 +"\t行列数:"+单块有效区.Rows.Count +","+ 单块有效区.Columns.Count);
- }
- console.log("单元格数量:"+ 计数);
- return 单元格对象;
- }
复制代码
//这里的文字也会被吃。
出现一些现象:
一、重新编辑的贴子,增加代码后,保存浏览没有后面新增的。甚至还会吃掉code标签后面的普通文字。
二、重新编辑的贴子,增加代码后,点一下编辑框右上角□纯文本,增加的代码就没了。
|
|