2017-12-28 56 views
0

그래서 Google 스프레드 시트가 있습니다. 그것에는 약 15 장이 있습니다. 이 15 개의 시트 모두에서 셀 값을 다른 통합 문서로 복사하고 싶습니다.Google 스크립트 : TRIGGER (편집 또는 시간 기준)에 기반하여 한 시트에서 다른 시트로 계산 된 값을 복사하려면

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 섹션을 위의 코드 교체를