Google-apps-script:可扩展行中的唯一ID

时间:2013-04-14 17:08:22

标签: google-apps-script

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

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

这个想法的功能如何在谷歌脚本中查找谷歌电子表格?

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

感谢您的帮助!

1 个答案:

答案 0 :(得分: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);
}