フォームに入力されたデータをリンクされたスプレッドシートに書き込む際に解析するこのコードがあります。私は最後にフォーム提出時に特定の値に1つのセルを設定する部分もあります。しかし、提出物が入力された行にあった数式または条件付き書式は、クリアされます。たとえば、前述の特定の値を受け取るセルの色分けをしています。しかし、シートの条件付き書式設定セクションを見ると、値の範囲が1つ下にシフトします。つまり、元のI2:I50。投稿後I3:I51Googleフォーム/シートスクリプトは、数式をクリアし、行内の条件付き書式設定を行います。
いくつかの計算を実行する必要がありますが、これも完全にクリアされています。
function onSubmit(e) {
Logger.log("onSubmit() called with data:");
Logger.log(e);
var category = e.namedValues[ 'Location' ];
Logger.log("category from onSubmit is " + category);
Logger.log("range in sheet was:" + e.range.getA1Notation());
var rowNum = e.range.getRow();
Logger.log("row in range in sheet was " + rowNum);
var columnNum = 3;
Logger.log("last column in range in sheet was " + columnNum);
var pieces = category.toString().split(" > ");
Logger.log("split up category: ");
Logger.log(pieces);
var arrayLength = pieces.length;
for (var i = 0; i < arrayLength; i++) {
var targetColumnNum = columnNum + i;
Logger.log("target Column " + targetColumnNum);
Logger.log("setting row " + rowNum + " Column " + targetColumnNum + " to value " + pieces[i]);
SpreadsheetApp.getActiveSheet().getRange(rowNum, targetColumnNum).setValue(pieces[i]);
}
targetColumnNum = 9;
SpreadsheetApp.getActiveSheet().getRange(rowNum, targetColumnNum).setValue("(1)Open");
}
は、ループのためにその行に他のセルから、それをすべてクリア条件付き書式や数式になるだろうどのように動作するかで何かがあります:ここに私のスクリプトはありますか?
5.シートの最初と最後の行を含む範囲に条件付き書式を設定します。行が挿入されるため、条件付き書式設定を取得する必要があります。少なくともこれは私の経験でしたが、私の場合の条件はすべて、提出されたデータを超えてセルに適用され、フォーマットの条件に合った値に設定されていました。 –