Google apps script Google Sheets脚本删除新行

Google apps script Google Sheets脚本删除新行,google-apps-script,delete-row,Google Apps Script,Delete Row,我想要在我的重置脚本中包含一个函数,该函数删除用户在向我创建的Google calculator添加新项目时可能添加的任何行。我有一个脚本,在单击按钮时插入新行,并将其设置为在第19行之后插入行 因此,基本上我想将表单重置为其原始状态,但不确定如何删除添加的新行。用户可以选择27个可能的项目选项,因此我无法指定要删除的行数,因为每次使用计算器时,行数都会有所不同 这是计算器的屏幕截图。。。。。。因此,当用户单击+按钮时,它会添加一个新行/项目。因此,当我重置计算器时,我希望删除这些新行并恢复到默

我想要在我的重置脚本中包含一个函数,该函数删除用户在向我创建的Google calculator添加新项目时可能添加的任何行。我有一个脚本,在单击按钮时插入新行,并将其设置为在第19行之后插入行

因此,基本上我想将表单重置为其原始状态,但不确定如何删除添加的新行。用户可以选择27个可能的项目选项,因此我无法指定要删除的行数,因为每次使用计算器时,行数都会有所不同

这是计算器的屏幕截图。。。。。。因此,当用户单击+按钮时,它会添加一个新行/项目。因此,当我重置计算器时,我希望删除这些新行并恢复到默认状态。如果我不这样做,那么当我点击重置按钮时,单元格引用和公式等将与脚本不匹配,并将错误重置。希望这是有意义的


最简单的解决方案是检查单元格
A21
是否已填充,因为只应存在19行(19行+1个标题行+1个无关行),并使用继续删除行,直到其为空:

var sheet=SpreadshetApp.getActiveSheet();
var范围=sheet.getRange(“A20”);
while(range.getValues().length){
表1.deletRow(21);
}
var sheet=SpreadsheetApp.getActiveSheet();
var范围=sheet.getRange(“A21”);
而(range.getValue()!=“”){
第21页;
}
虽然这个方法可以工作,但它比在一个方法调用中简单地删除所有无关的行要慢。要做到这一点,您需要在活动服务器上使用该方法。首先要确定要删除的行数:
sheet.getDataRange().getValues().length-20
。然后从工作表中删除那么多行

var sheet=SpreadshetApp.getActiveSheet();
var howMany=sheet.getDataRange().getValues().length-20
表.删除行(21,有多少行);

谢谢您的回复:)我唯一的问题是,要删除的行数将根据用户在使用计算器时添加的行数(项目)而变化。@puffin我刚刚上传了一个计算器的屏幕截图,请您提供一份您正在使用的电子表格的副本,澄清您期望的结果,以及您当前拥有的应用程序脚本代码?