【问题标题】:Google-apps-script: Unique ID's in extensible rowsGoogle-apps-script:可扩展行中的唯一 ID
【发布时间】:2013-04-15 05:21:20
【问题描述】:

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

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

这个想法的函数在 google-script 中的 google-spreadsheet 中的外观如何?

我用 script-cell-functions 和正常的给定函数尝试了它,但不幸的是我被卡住了。

感谢您的帮助!

【问题讨论】:

    标签: google-apps-script


    【解决方案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);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 2014-07-08
      相关资源
      最近更新 更多