私は非常にひどくコーディングしていますが、Googleシート内のプレースメントのスタティックユニークIDを生成するスクリプトをまとめようとしています。Googleシートスクリプト:行番号にリンクされていない静的な一意のIDを生成する
列Dの任意のデータが列Aに入力されると、最後のIDから増分する一意のIDが生成されます。ただし、一意のIDは静的なものでなければならず、行番号にリンクされていません。ユニークなIDの必要性は、データが列Dに入力される順序でインクリメントする必要があります。列Dには必ずしも順番に入力する必要はありません(ID2は行16に、ID3は行6にあります)。
私は、実行する必要のあるものをほぼ達成していると感じていますが、最終決定には私の理解の限界に達しています。誰でもOnForm関数からsetValueコマンドを含めるためにOnEdit関数をどのように適応させるか説明するのに役立つことができますか?私が正しくあなたの問題を理解している場合
function OnForm(){
var sh = SpreadsheetApp.getActiveSheet()
var startcell = sh.getRange('A1').getValue();
if(! startcell){sh.getRange('A1').setValue(1);return};
var colValues = sh.getRange('A1:A').getValues();
var max=0;// define the max variable to a minimal value
for(var r in colValues){ // iterate the array
var vv=colValues[r][0].toString().replace(/[^0-9]/g,'');
if(Number(vv)>max){max=vv};
}
max++ ; // increment to be 1 above max value
sh.getRange(sh.getLastRow()+1, 1).setValue(Utilities.formatString('IG%05d',max));
}
function onEdit(e) {
var ss = e.source.getActiveSheet();
var watchedCols = [4]
if (watchedCols.indexOf(e.range.columnStart) === -1) return;
ss.getRange(e.range.rowStart, 2)
.setValue('unique ID here')
}
私に権利について鳴ります。あなたは私にそれをどうやってしてくれるのかを教えてもらうことはできません。 – user1883984
確かに、私は答えを編集しました。私はGoogleスクリプトとあまりにも優れていないとスプレッドシートAPIを使用していないことに注意してください。このコードが機能していないかどうか教えてください。私はそれに戻ります。 – VOL