添加/删除条目时自动对列进行排序,并直接创建/删除相关行

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

我正在尝试创建一个谷歌工作表,在“名称”列中自动对新条目进行排序(参见图片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]

google-sheets google-apps-script insert addition
1个回答
1
投票

更改此行的最后一个参数

const range = currentSheet.getRange(2,2, currentSheet.getLastRow()-1,2);

const range = currentSheet.getRange(2,2, currentSheet.getLastRow()-1,3);

参考

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