2017-12-28 20 views
0

Googleスプレッドシートがあります。それには約15枚あります。私はこれらの15枚のシートのすべてから別のブックにセルの値をコピーしたいと思います。google script:TRIGGER(編集時または時間駆動時)に基づいて1つのシートから別のシートに計算された値をコピーする

私はimportrange関数を使ってみました。私がコピーしようとしている値は、それを計算する公式に基づいた動的なものです。

はので、私は、ワークブックの約15シートから値をコピーする必要があるので、あなたは私が変更することにより、コピーペースト機能の複数行を記述する必要が見ることができるよう

function copy(){ 

var sss = SpreadsheetApp.openById('14wsBaW2HWqtdPZBDycsRVQCgOJuaNIYDKDJOjTDwWO8'); //replace with source ID 
var ss = sss.getSheetByName('Round 1'); //replace with source Sheet tab name 

var range = ss.getRange('G14'); //assign the range you want to copy 
var data = range.getValues(); 

var tss = SpreadsheetApp.openById('1SWOZ_Xq-1E3LHfE1FwTt4O9bs-FIAk3I5Wjz9VKFh6A'); //replace with destination ID 
var ts = tss.getSheetByName('Net Worth'); //replace with destination Sheet tab name 
ts.getRange(2, 2, data.length, data[0].length).setValues(data); 


var sss = SpreadsheetApp.openById('14wsBaW2HWqtdPZBDycsRVQCgOJuaNIYDKDJOjTDwWO8'); //replace with source ID 
var ss = sss.getSheetByName('Round 2'); //replace with source Sheet tab name 

var range = ss.getRange('G14'); //assign the range you want to copy 
var data = range.getValues(); 

var tss = SpreadsheetApp.openById('1SWOZ_Xq-1E3LHfE1FwTt4O9bs-FIAk3I5Wjz9VKFh6A'); //replace with destination ID 
var ts = tss.getSheetByName('Net Worth'); //replace with destination Sheet tab name 
ts.getRange(3, 2, data.length, data[0].length).setValues(data); 

} 

NOW関数のエクスポートを使用してみましたラウンドi(i = 1〜15)と、転記された行番号。

私が達成したいのは、コードのサイズを減らし、時間トリガーまたはオープントリガーまたは編集トリガーに基づいていることです。しかし、私はこだわって多くを見つけることができません

答えて

1

あなたは本のすべてのシートを取得し、それぞれを介して'G14'セルの値をコピーするループすることができます。それらを2D配列で保存します。以下のコードを参照してください。

////copying values from each sheet 
var copyBook = SpreadsheetApp.getActiveSpreadsheet(); 
var copySheets = copyBook.getSheets(); 
var selectedValues = []; 
for(var sheet in copySheets) 
{ 
    //Logger.log(copySheets[sheet].getName()); 
    var value = copySheets[sheet].getRange('G14').getValue(); 
    selectedValues.push([value]); 
} 
//Logger.log(selectedValues); 

は今、自分の価値観を配列にコピーされ、今、あなたはそれをあなたの先のシートを貼り付けます。

////pasting copied values 
var pasteBook = SpreadsheetApp.openById('destination book id'); 
var pasteSheet = pasteBook.getSheetByName('destination sheet name'); 
pasteSheet.getRange(2, 2, selectedValues.length, 1).setValues(selectedValues); 

あなたがこの回答を参照し、トリガーを設定する場合:https://stackoverflow.com/a/34684370/1134291

// your work to be doneセクション

とコードの上に置き換えます
関連する問題