错误消息:范围的坐标超出范围

时间:2020-01-22 12:04:38

标签: google-apps-script google-sheets

我真的很为此苦恼,脚本非常简单,唯一的是我只希望它从第3行开始排序,如果我将get.Range设置为(1, 1)然后就可以了,但是我需要那两行作为标题! 另外,前两行也被冻结(如果有任何区别)。 任何帮助,这将是惊人的! 我尝试了所有其他论坛解决方案(范围为+1或-1,但仍然没有。

function sortSpreadSheet(){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Sheet1");
    var range = sheet.getRange(3,1, sheet.getLastRow(), sheet.getLastColumn());
    range.sort({column: 1, ascending: false});
}

1 个答案:

答案 0 :(得分:2)

排序时忽略冻结行,因此只需抓住工作表的datarange并进行排序:

sheet.getDataRange().sort(/* your options here*/);

错误原因出在您的Sheet#getRange调用中,因为您没有考虑标题行的偏移量为 2

const numHeaders = 2;
const range = sheet.getRange(1 + numHeaders, 1, sheet.getLastRow() - numHeaders, sheet.getLastColumn());
range.sort(...);