我正在尝试创建一个谷歌工作表,在“名称”列中自动对新条目进行排序(参见图片1)。
我在网上找到了排序脚本,它根据“名称”排序的需要工作。 但是,如果我在“名称”列中输入一个新名称(例如“N”),它会自动对其进行排序并为“S1”创建一个新行,但不会为“S2”创建一个新行(参见图2);同样,如果我删除了一个名称(例如“K”),它会将其下面的数据向上移动,并将“Name”和“S1”的相关单元格移动到新行的底部,但它不会这样做对于“S2”(参见图 3)。 因此,每当进行新条目或删除时,数据就会混乱。
如何使代码在添加名称时为 S1 和 S2 创建一个新行,以及如何使其在删除名称时自动删除整行。
这是我的脚本:
function autoSort(e){
const row = e.range.getRow();
const column = e.range.getColumn() ;
const ss = e.source;
const currentSheet = ss.getActiveSheet();
const currentSheetName = currentSheet.getSheetName();
if(!(currentSheetName === "Scores" && column === 2 && row >=2)) return
const range = currentSheet.getRange(2,2, currentSheet.getLastRow()-1,2);
range.sort({column: 2, ascending: true});
}
function onEdit(e){
autoSort(e)
}
[图片1]
[图2]
[图3]
更改此行的最后一个参数
const range = currentSheet.getRange(2,2, currentSheet.getLastRow()-1,2);
到
const range = currentSheet.getRange(2,2, currentSheet.getLastRow()-1,3);