2017-10-04 55 views
0

我想在每个后续数字后面的每个数字后面加上+1,从我输入的数字开始自动。将每个数字加1到后续数字以确定优先级列表

例如:

  • 我有在列20行
  • 我有编号的每一行,1-20
  • 我决定#17(接骨木)应该应优先为#6
  • 我改变数字17到数字6(步骤1)
  • 水果排名6变为#7,#7使〜#8,等等,直到#20(步骤2)**
  • 所有号码#6前s为不受影响

Please see example here

+0

一些解决方法:A1' =行()'拖累向下填充至A20;现在移动整行(17)并将其带到(6) –

+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}); 
    } 
} 

这里就是我的电子表格看起来像:

enter image description here

+0

谢谢,我会检查并标记它应该工作! – jrembold

相关问题