2017-02-18 42 views
0

我希望從三列中選擇數據並在另一張紙上寫入。在另一張紙上寫數組

我的代碼有什麼問題?

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

我很抱歉張貼此。我看到了我的錯誤。我用x = x + 1替換了行代碼var u = x + y – hbbz040

回答

0

最好是將值寫入到一個數組,然後寫該陣列到片材在一個呼叫。另請參見: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); 
} 
相關問題