我基本上将所有班级放在同一张纸上,并希望按名字和姓氏来组织每个班级。 每个类都有2列正在使用。当我使用一种排序范围并对列进行排序时,它现在才需要其余的。任何帮助都是很棒的,因为我还很陌生。
SHEET_NAME = "ALL STUDENTS";
SORT_DATA_RANGE = "A3:B100";
SORT_ORDER = [
{column: 2, ascending: true}, // 3 = column number, sorting by descending order
{column: 1, ascending: false}, // 1 = column number, sort by ascending order
];
function onEdit(e){
multiSortColumns();
}
function multiSortColumns(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(SHEET_NAME);
var range = sheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
ss.toast('Sort complete.');
}
SHEET_NAME = "ALL STUDENTS";
SORT_DATA_RANGE = "D3:E100";
SORT_ORDER = [
{column: 5, ascending: true}, // 3 = column number, sorting by descending order
{column: 4, ascending: false}, // 1 = column number, sort by ascending order
];
function onEdit(e){
multiSortColumns();
}
function multiSortColumns(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(SHEET_NAME);
var range = sheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
ss.toast('Sort complete.');
}
答案 0 :(得分:1)
函数以外的所有声明对于整个项目都是全局的。因此,所有范围声明都将导致最后一个声明。 SORT_DATA_RANGE = "D3:E100";
如果希望它们对于每个功能都是唯一的,则必须将它们放在每个功能中。但是,在您的情况下,还必须为项目中的每个函数指定不同的名称。因此,不能有两个名为onEdit()的函数。您可以创建两个可安装的onedit触发器,并将它们附加到两个不同的功能。
您也不能拥有两个multiSortColumns()函数。您可以为multiSortColumns函数指定一个参数,然后再次使用相同的函数。
注意:这是基本的JavaScript。您可能会做好自己做一些阅读的工作。我从MDN web docs
获得了很多信息