电子表格上的Google Apps脚本可编辑多个匹配行

时间:2014-04-29 16:09:16

标签: google-apps-script

此功能正常,但速度很慢。我想知道是否有任何其他方法可以更好,更快地工作。例如,使用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
    }
}

1 个答案:

答案 0 :(得分:0)

不是一次读取和写入一个单元,而是一次读写大块数据。使用Sheet.getDataRange()获取覆盖工作表中所有数据的范围,并使用Range.getValues()获取该范围内的2D数组值。有关详细信息,请参阅应用脚本Best Practices guide