2014-04-29 89 views
0

此功能可以正常工作,但速度很慢。我想知道是否有其他方法可以更好,更快地工作。例如,使用QUERY修改匹配條件或其他內容。 注意:工作表是按組中的第一列進行排序的,因此這些目標項目可能在任何地方停下來。電子表格上的Google Apps腳本可編輯多個匹配行

function changeownership(account, volume, newowner, changetime) { 
    var values = [ [ newowner, account, changetime ] ]; 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    for (var n = 1 ; n < ss.getSheets()[0].getLastRow(); n++) { 
     var owner = ss.getSheets()[0].getRange(n, 1).getValue(); 
     if (owner == account) { 
      volume = volume - 1; 
      var range = ss.getSheets()[0].getRange("A"+n+":C"+n); 
      range.setValues(values); 
     } 
     if (volume < 1) 
      break 
    } 
} 

回答

0

不是一次一個地讀取和寫入單元,而是一次讀取和寫入大塊數據。使用Sheet.getDataRange()來獲取覆蓋工作表中所有數據的範圍,並使用Range.getValues()獲取該範圍內的二維數組值。有關更多信息,請參閱Apps腳本Best Practices guide

相關問題