基于单元格值的重复行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于单元格值的重复行相关的知识,希望对你有一定的参考价值。
我想根据单元格值复制行,然后删除单元格值(红色),以便在重新运行脚本时不会再次在同一行上工作
我尝试过脚本,但是有两个问题
1-单元格值保持不变,因此当重新运行脚本时,它将导致一次又一次重复同一行2-从整个工作表中删除我写的公式
如果您要检查脚本,脚本仍存在于脚本中https://docs.google.com/spreadsheets/d/1fJc2ymAADaZ4jtEGRAkUkWRape24Un7OE4jYcgcd9FM/edit#gid=0
答案
单行自动复制
function AutoDuplicate()
var ss=SpreadsheetApp.getActive()
var sh=ss.getActiveSheet();
var rg=sh.getDataRange();
var vA=rg.getDisplayValues();
var bA=rg.getBackgrounds();
var v=[];
var b=[]
for(var i=0;i<vA.length;i++)
var t1=bA[i][7];
var t2=vA[i][7];
if(bA[i][7]=='#ff0000' && !isNaN(vA[i][7]) && Number(vA[i][7])>0)
bA[i][7]='#ffffff';
for(var j=0;j<vA[i][7];j++)
v.push(vA[i]);
b.push(bA[i]);
sh.getRange(1,1,v.length,v[0].length).setValues(v);
sh.getRange(1,1,b.length,b[0].length).setBackgrounds(b);
动画:
多行自动复制
function autoDupeForMultipleRows()
var ss=SpreadsheetApp.getActive()
var sh=ss.getActiveSheet();
var rg=sh.getDataRange();
var vA=rg.getDisplayValues();
var bA=rg.getBackgrounds();
var v=[];
var b=[];
var a=0;
for(var i=0;i<vA.length;i++)
if(bA[i][7]=='#ff0000' && !isNaN(vA[i][7]) && Number(vA[i][7])>0)
bA[i][7]='#ffffff';
for(var j=0;j<=vA[i][7];j++)
v.push(vA[i]);
b.push(bA[i]);
sh.clearContents();
var org=sh.getRange(1,1,v.length,v[0].length).setValues(v);
org.setBackgrounds(b);
动画:
以上是关于基于单元格值的重复行的主要内容,如果未能解决你的问题,请参考以下文章