0

我有一列有 40 个不同的数字,从 1.. 到 40 列出。当我在另一行的上方或下方插入一行时,这个新行的编号应该是 41,忽略序列。任何数字都不应出现两次或被删除。

这个想法是每行都有唯一的 ID,并且行数可以增加。

这个想法的函数在谷歌电子表格的谷歌脚本中看起来如何?

我用脚本单元函数和正常的给定函数尝试了它,但不幸的是我被卡住了。

感谢您的任何帮助!

4

1 回答 1

1

下面的这个脚本严格按照您的要求执行。这也意味着它仅在新插入的行单元格为空时才有效。(由于第二个循环中的 ++maxval ,它可以填充多个插入的行)。如果您在最后一行之后添加一个空行(实际上 ID 单元格必须为空,但此行中必须有某些内容以便脚本“看到”它),它将不起作用,但这是非常合乎逻辑的!

function fillRowNumber(){
  var col = 1 ; // this for column A ! change to your needs
  var sh = SpreadsheetApp.getActiveSheet();
  var dataincol = sh.getRange(1,col,sh.getMaxRows(),1).getValues();
  var maxval =0
  for(n=0;n<dataincol.length;++n){
    if(Number(dataincol[n][0])>maxval){ maxval=Number(dataincol[n][0])}
    }
  for(n=1;n<sh.getLastRow();++n){
    if(dataincol[n-1][0] == ''){ dataincol[n-1][0]=maxval+1;++maxval}
    }
  sh.getRange(1,col,sh.getMaxRows(),1).setValues(dataincol);
}
于 2013-04-14T21:10:50.657 回答