按降序对整个工作表进行排序

问题描述 投票:0回答:1

我正在尝试创建一个函数,按第 4 列对工作表数据进行降序排序,

function specialSort(){
  var sheet = SpreadsheetApp.getActive().getSheetByName('DATA');
  sheet.sort({ column: 4, ascending: false })
}

其他答案(例如,here)似乎推荐这种方法。但是为什么这段代码会抛出错误

Exception: Cannot convert '[object Object]' to int
?如果我简单地使用
sheet.sort(4)
,我会得到我想要的结果(按第 4 列对整个工作表进行排序),只不过它是按升序排列的。

请注意:我想按第 4 列(降序)对整个工作表进行排序,而不仅仅是列本身。

sorting google-sheets google-apps-script
1个回答
3
投票

从你的脚本中,我认为

sort(sortSpecOb)
是针对 Class Range 的。 Class Sheet 的
sort(columnPosition, ascending)
的参数是
columnPosition
(整数)、
ascending
(布尔值)。我认为这可能是您当前问题的原因。在你的脚本中,进行以下修改怎么样?

修改后的脚本:

function specialSort() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('DATA');
  sheet.sort(4, false);
}

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.