2017-02-18 7 views
0

私は3つの列からデータを選択し、別のシートに書きたいと思います。別のシートに配列を書く

私のコードで何が問題になっていますか?

function values() { 
 
    var ss = SpreadsheetApp.getActiveSpreadsheet(), 
 
     sheet = ss.getSheets()[0], 
 
     t = ss.getSheetByName('o'), 
 
     range = sheet.getDataRange(), 
 
     values = range.getValues(), 
 
     x = 2; 
 
    
 
    for (var r = 1; r < values.length; r++) { 
 
    var row = values[r], 
 
     n1 = row[1], 
 
     n2 = row[5], 
 
     n3 = row[9], 
 
     array = [n1,n2,n3] 
 
    
 
    for (var y = 0; y < 2; y++) { 
 
     var u = x + y; 
 
     t.getRange(u, 1).setValue(array[y]); 
 
    } 
 
    } 
 
}

+0

を試みることができるスクリプトを最適化します。私は間違いを見た。行コードvar u = x + yをx = x + 1に置き換えました – hbbz040

答えて

0

これは、配列に値を書き込み、その後、1回のコールでシートに配列を書き込む方が良いでしょう。参照:here.

だから、私はこれを掲示するので、申し訳ありません

function values() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(), 
    sheet = ss.getSheets()[0], 
    t = ss.getSheetByName('o'), 
    range = sheet.getDataRange(), 
    values = range.getValues(), 
    x = 2, 
    array =[ ]; 

for (var r = 1; r < values.length; r++) { 
var row = values[r], 
    n1 = row[1], 
    n2 = row[5], 
    n3 = row[9]; 
    array.push([n1,n2,n3]); 
} 
t.getRange(2, 1, array.length, array[0].length).setValues(array); 
} 
関連する問題