0

1.. から 40 までの 40 の異なる番号を持つ列があります。他の行の上または下に行を挿入すると、この新しい行の番号は 41 になり、シーケンスは無視されます。数字が 2 回出現したり、削除されたりすることはありません。

行ごとに一意の ID があり、行の数を増やすことができるという考え方です。

このアイデアの関数は、google-spreadsheet の google-script でどのように見えるでしょうか?

script-cell-functions と通常の特定の関数で試しましたが、残念ながら行き詰まりました。

助けてくれてありがとう!

4

1 に答える 1

1

以下のこのスクリプトは、あなたが求めていることを厳密に実行します。これは、新しく挿入された行セルが空の場合にのみ機能することも意味します。(2 番目のループの ++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 に答える