2017-12-21 17 views
1

私は、あるシートのセルの範囲を別のシートにコピーするためのGoogleアプリスクリプトを探しています。最初の範囲値はユーザー変更され、同じ範囲(新しい値)を最初の範囲値から次の行にコピーします。ここで私はこれまで持っているものです。あるシートの範囲を別のシートの範囲にコピーし、次の行にコピーを繰り返す方法

function copyToDatasheet() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s1 = ss.getSheetByName('Mobile Form'); 
    var s2 = ss.getSheetByName('Data'); 

    s1.getRange('B2').copyTo(s2.getRange('P6'), {contentsOnly:true}) 
    s1.getRange('B4').copyTo(s2.getRange('Q6'), {contentsOnly:true}) 
    s1.getRange('B6').copyTo(s2.getRange('R6'), {contentsOnly:true}) 
    s1.getRange('B8').copyTo(s2.getRange('S6'), {contentsOnly:true}) 
    s1.getRange('B10').copyTo(s2.getRange('O6'), {contentsOnly:true}) 
} 

このすべてが行うが、コピーs1が、私はそれを開始するが、次のエントリで、私はそれが下に移動する方法である行6、から始まる範囲をとs2する範囲であります行7など。 s1の範囲はリセットされ、新しい値が入力され、次の行の下にs2にコピーされます。それらを動的に次の実行に移動させます。これは意味があると思う、私はアプリのスクリプトについての知識のトンを持っていないので、いくつかの機能が可能であれば役立つものを説明する。誰もが提供できるお手伝いをありがとう。

答えて

0

This will Sheet1の編集時に同じデータ範囲を取得します。そのデータはすべてSheet2に追加されます。

function getMultipleValues(){ 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Sheet1'); 

    var range = sheet.getRange(2,1,4,2); //getRange(starting row, starting column, ending row, ending column) 
    var data = range.getValues(); 
    putMultipleValues(data) 
} 

function putMultipleValues(data){ 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Sheet2'); 
    data.forEach(function(i){ 
    SpreadsheetApp.flush(); 
    sheet.appendRow(i) 
    }) 
} 

トリガーを設定することを忘れないでください。メニュー=>編集=>現在のプロジェクトのトリガー。 enter image description here

関連する問題