2016-12-31 16 views
1

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については自分自身を初心者だと考えています。私は知識がありますが、実際のアプリケーションは私がまだ学んでいるものです:)

答えて

4

あなたがしようとしていることを行うためにスクリプトを使用する必要があるかどうか不明です。なぜクエリ式を使用しないのですか?例えば

=クエリ(MasterData:!A:E、 "Dを選択して、E A = 'ミランダ'"、0)

クエリhere上のいくつかの助けがあります。また、スプレッドシート全体でクエリを実行することもできます。つまり、ミランダに自分のスプレッドシートを割り当てることができます。スプレッドシートは、マスターデータからフィードを取得します。

さらに詳しい情報が必要な場合は、サンプルのスプレッドシートデータを共有してください。

+1

範囲がD列とE列を含む必要があると思います。 '= query(MasterData!:A:E、" SELECT D、E WHERE A = "Miranda" "、0)' –

+0

私はクエリを使用することを考えていましたが、個々の先生がインポートするたびにクエリを配置する必要はありませんでしたか?また、これは彼らが望む機能のいくつかの小さなサンプルですが、創始者です。他のものはすべて実装が簡単ですが、メニューから選択できる機能を使用する方が良いと思っていました – Jensen010

+0

[ここには問題のシートがあります](https://docs.google.com/スプレッドシート/ d/1RC3-m1pnzjO2zgw4TwA5_PvK2dJZ4DwEPDml7yoRQmU /編集?usp =共有) – Jensen010

関連する問題