2017-01-10 11 views
0

Googleフォームから最後の応答を受け取り、別のシートの同じ範囲にコピーします。最後の行から新しいシートに範囲をコピーする

2番目のシートには、誰かとして割り当てたいと思う列A & B(ログインとパスワード)のデータが登録フォームに記入されています。

レスポンスを受信したときにフォームのレスポンスシートの列BからHのデータを、ログイン/パスワード列を含むシートの列CからIにコピーしたいとします。

私は最後の行から範囲を取るコードが不足していることは知っていますが、私は全くコード化していないと私の現在のスクリプトはWebと参照資料の周りに見つかったものからコンパイルされています。

アドバイスをいただければ幸いです。

function onEdit(e) { 


    var spreadsheet = SpreadsheetApp.openById("sheetid"); 
    var sheet = spreadsheet.getSheets()[0]; 


    var lastrow = sheet.getLastRow(); 
    var range = sheet.getRange(2,2,1,7); 
    values = range.getValues(); 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var SSsheet = ss.getSheets()[1]; 


    var ssRange = SSsheet.getRange(2,3,1,7); 
    ssRange.setValues(values); 

    } 
+0

どのような基準で、シート1からシート2にデータをコピーしていますか?あるいはフォームレスポンスをシート2に行単位でコピーしていますか?また、シート2の列AとBは既に埋め込まれていますか? 1つの提案:応答シートから最後の行を取得する場合は、 'var range = sheet.getRange(lastrow、2,1,7)'と書く。パラメータは、行、列、行数および行数です。 colsの –

+0

私の答えは役に立ちましたか? – noogui

答えて

0

copyTo(destination)を試してください。これは、ある範囲のセルから別の範囲のセルにデータをコピーします。値と書式の両方がコピーされます。

// The code below will copy the first 5 columns over to the 6th column. 
var sheet = SpreadsheetApp.getActiveSheet(); 
var rangeToCopy = sheet.getRange(1, 1, sheet.getMaxRows(), 5); 
rangeToCopy.copyTo(sheet.getRange(1, 6)); 
} 

また、copyValuesToRangecopyValuesToRangeを試すこともできます。

その他のコードサンプルについては、this forumも参照してください。

関連する問題