自分のエリアで発生しているアクティビティだけを含むマネージャー用のマスターシートを作成する必要があります(私はこれが必要なスクリプトを用意しています)。これらのシートは、マスタシートから読み込まれます(同じブックにはありません)。1つのシートから別のシートに行をコピー
新しい提出がある場合は、該当するシートに行をコピーする必要があります。以下のコードはすべて1つのシートにダンプしています。私は正しい条件がないと仮定していますが、このマネージャーのときに「このシートに行を移動する」とはどうやって言いますか?私は、シートIDを行単位で呼ぶだけで十分だと思ったが、そうは思わない。
すべてのマネージャーに対してif else文を実行する必要がありますか?私は約80人のマネージャーがいるので、それは退屈になるでしょう。
以下は私の現在のコードです。どんな助けや助言もありがとう!
function moveRows(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName("Form Responses 1");
var data = sh.getDataRange().getValues();
// Grab the Headers
var headers = sh.getRange(1,1,1,sh.getLastColumn()).getValues();
var nameCol = headers[0].indexOf('Enter Your Name');
var candCol = headers[0].indexOf('Choose Candidate');
var typeCol = headers[0].indexOf('Merged Experience');
var docCol = headers[0].indexOf('Document Link');
var timeCol = headers[0].indexOf('Timestamp');
var subjectCol = headers[0].indexOf('Choose the Content Area');
var ratingsCol = headers[0].indexOf('Ratings Summary');
var accessCol = headers[0].indexOf('Access');
var activityCol = headers[0].indexOf('Copied to Activity Sheet');
var masterCol = headers[0].indexOf('Master Activity Sheet');
var target = [];
// Loop over the values line by line
for (var i = 0; i < data.length; i++) {
var row = data[i];
var name = row[nameCol];
var activity = row[activityCol];
var master = row[masterCol];
var candidate = row[candCol];
var type = row[typeCol];
var subject = row[subjectCol];
var ratings = row[ratingsCol];
var access = row[accessCol];
var guide = row[docCol];
var time = row[timeCol];
if (activity == "") { // if condition is true copy the whole row to target
target.push([time,name,candidate,subject,type,guide,ratings]);
Logger.log(target);
var ss2 = SpreadsheetApp.openById(master);
var sh2 = ss2.getSheetByName("Sheet1");
sh2.getDataRange().offset(sh2.getLastRow(), 0, target.length, target[0].length).setValues(target);
}
}
}
注:は、私は別のタブから行を移動異なるスクリプトの束を持っているが、私は、私は複数のワークブックを渡ってそれを動かす何かを見つけることができませんでした。
感謝を!彼らは別のワークブックにあることが重要ですか?私には、コードがアクティブシートを取得し、「マネージャー1」タブを選択すると言うように見えます。私はそれを間違って読んでいますか? – Niya