此功能正常,但速度很慢。我想知道是否有任何其他方法可以更好,更快地工作。例如,使用QUERY修改匹配条件或其他内容。 注意:工作表按组中的第1列进行排序,因此这些目标项可能在任何地方。
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 :(得分:0)
不是一次读取和写入一个单元,而是一次读写大块数据。使用Sheet.getDataRange()
获取覆盖工作表中所有数据的范围,并使用Range.getValues()
获取该范围内的2D数组值。有关详细信息,请参阅应用脚本Best Practices guide。