我想在列中的每个后续号码之后为每个号码添加+1,从我输入的号码开始,自动。
例如:
答案 0 :(得分:1)
我认为这可以实现你想要的。
function onEdit(e)
{
if(e.source.getActiveSheet().getName()=='Sheet3' && e.range.getColumn()==1 && e.value != e.oldValue)
{
var sh=e.source.getActiveSheet();
var row=e.range.getRow();
//Logger.log(row);
var vA=sh.getDataRange().getValues();
for(var i=1;i<vA.length;i++)
{
if(Number(e.value) > Number(e.oldValue))
{
//Logger.log('flag up e.value=%s > e.oldValue=%s',e.value,e.oldValue);//moving up
if(Number(i+1)!=row && vA[i][0]>e.oldValue && vA[i][0]<=e.value)
{
//Logger.log('decr vA[%s][0]=%s',i,vA[i][0]);
vA[i][0]=vA[i][0]-1;
}
}
if(Number(e.value) < Number(e.oldValue))
{
//Logger.log('flag down e.value=%s < e.oldValue=%s',e.value,e.oldValue);//moving down
if(Number(i+1)!=row && vA[i][0]>=e.value && vA[i][0]<e.oldValue)
{
//Logger.log('incr vA[%s][0]=%s',i,vA[i][0]);
vA[i][0]=vA[i][0]+1;
}
}
}
sh.getDataRange().setValues(vA);
var rg=sh.getRange(2,1,vA.length-1,vA[0].length).sort({column:1,ascending:true});
}
}
这是我的电子表格的样子: