Googleシート用の条件付きのGoogleアプリスクリプトを作成しようとしていて、シートには5つのタブがあります。基本的に、シートはGoogleフォームからデータを取得します。クライアントがフォームに記入すると、問題のシートの「マスター」タブが表示されます。Google Appsスクリプト - 別のシートからシート値をインポートする
ここで私はハングアップしています: フォームは、教師が特定の管理者に学生を紹介するために使用されます。フォームを管理しているユーザーは、特定の管理者に特定の行のデータを割り当てる必要があります。特定の管理者には、それぞれ独自のタブが設定されています。これを行うには、ドロップダウンから行を割り当てる管理者を選択します。
したがって、2行目が「Miranda」に割り当てられていると、特定のデータが「Miranda」タブに移動します。引数のために、その特定の行の列DとEが "Miranda"タブの列Aに移動されるとします。
function importStudent() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var master_sheet = ss.getSheetByName("Master");
var miranda_sheet = ss.getSheetByName("Miranda");
var columnT = master_sheet.getRange("T1:T").getValues();
var columnD = master_sheet.getRange("D1:D").getValues();
var columnE = master_sheet.getRange("E1:E").getValues();
for(var i = 0; i <= columnT; i++) {
if (columnT[i][0] === "Miranda") {
var miranda_row = (miranda_sheet.getLastRow() + 1);
var active_row = SpreadsheetApp.setActiveRange(columnT[i].getRow());
var selectionFirst = columnD.setActiveRange(active_row:columnD);
var selectionLast = columnE.setActiveRange(active_row:columnE);
var fullName = selectionFirst + " " + selectionLast;
fullName.copyValuesToRange(miranda_sheet, 1, 1, miranda_row, miranda_row);
}
}
}
以下のコードが壊れている、と私はそれが動作することに少しのガイダンスを探しています:
は、ここで私は、これまでに作ってみたものです。 1つは変数が多すぎる、2はsetActiveRange()クラスのパラメータとして変数を渡すことができないと私は確信しています。だから、私の質問:
どうすればこの問題を解決できますか?それを機能させるために私は何を使うべきですか?
PS - 私はまだJavaScriptについては自分自身を初心者だと考えています。私は知識がありますが、実際のアプリケーションは私がまだ学んでいるものです:)
範囲がD列とE列を含む必要があると思います。 '= query(MasterData!:A:E、" SELECT D、E WHERE A = "Miranda" "、0)' –
私はクエリを使用することを考えていましたが、個々の先生がインポートするたびにクエリを配置する必要はありませんでしたか?また、これは彼らが望む機能のいくつかの小さなサンプルですが、創始者です。他のものはすべて実装が簡単ですが、メニューから選択できる機能を使用する方が良いと思っていました – Jensen010
[ここには問題のシートがあります](https://docs.google.com/スプレッドシート/ d/1RC3-m1pnzjO2zgw4TwA5_PvK2dJZ4DwEPDml7yoRQmU /編集?usp =共有) – Jensen010