排除自动排序时的行

时间:2017-12-09 23:44:10

标签: sorting google-apps-script google-sheets

我有一张包含8张的Google表格,需要在输入时对数据进行排序。我已经能够修改脚本以自动排序每个单独的工作表,但我需要从排序中排除第1行和第2行。我对使用脚本相当新,所以任何帮助都表示赞赏。基本上,当数据输入主表时,它被发送到事件页面(事件1 - 事件8)。从页面我希望数据按列A排序,但排除第1行和第2行。

function AutoSortOnEdit() {
var sheetNames = ["Event 1", "Event 2", "Event 3", "Event 4", "Event 5", 
"Event 6", "Event 7", "Event 8"];

var ss = SpreadsheetApp.getActiveSpreadsheet();
sheetNames.forEach(function(name) {
var sheet = ss.getSheetByName(name);
var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, 
sheet.getLastColumn());
range.sort({column: 1, ascending: true});
});

我希望每个工作表自动对第1列进行排序,但排除前两行。我已经能够使大部分脚本工作,但无法弄清楚如何排除第1行和第2行。

我对此脚本的结果是每个工作表都会排序,但它包含前两行

1 个答案:

答案 0 :(得分:2)

这次修改怎么样?

  • 如果要按列(A)对每列排除第1行和第2行的行进行排序,则范围为getRange(3, 1, sheet.getLastRow() - 1, sheet.getLastColumn())
    • 如果是getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()),则只排除第1行。

您可以尝试以下修改吗?

来自:

var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());

致:

var range = sheet.getRange(3, 1, sheet.getLastRow() - 1, sheet.getLastColumn());

参考:

如果我误解了你的问题,我很抱歉。