我是一名编程经验有限的小学老师,但如果它简化了我的生活,我喜欢尝试解决问题。 :)
我为学生创建了一个Google表格,让他们每天选择午餐。
我设置了一个脚本,触发器在每晚午夜和凌晨1点之间清除表单,它看起来像这样:
function clearRange() {
//replace 'Sheet1' with your actual sheet name
var sheet = SpreadsheetApp.getActive().getSheetByName('Lunch');
sheet.getRange('A2:G25').clearContent();}
脚本本身可行 - 但是,现在,每当添加新条目时,它们都会添加到清除旧条目的正下方的电子表格行中。因此,如果我周一有二十名学生回复,那么电子表格中填写了第2-21行,这些行在周一/周二上午的某个时间清除,第二天,响应填满第22-42行等等。
如何在我的脚本中编辑或添加一些内容,强制它在我的电子表格的第2行清除旧条目后放置所有新条目?
如果这个问题已经得到解答,请指出我的方向。
谢谢!
答案 0 :(得分:0)
您正在使用.clearContent()方法,Google表单会根据电子表格中的行跟踪回复,您需要使用deleteRows(rowPosition, howMany)完全删除该行,如下所示:
SELECT * FROM @tablename
注意:这不会重新启动您在Google表单用户界面中看到的计数器:
为此,您需要使用deleteAllResponses()
FormApp Class答案 1 :(得分:0)
您需要删除包含表单提交的行,而不是从单元格中清除内容。
以下是适用于您的修改后的代码。另外,请确保没有任何冻结行。
function clearRange() {
//replace 'Sheet1' with your actual sheet name
var sheet = SpreadsheetApp.getActive().getSheetByName('Lunch');
//get last row, this will be used to count how many rows to delete
var lr = sheet.getLastRow();
//delete row from 2 to last row
sheet.deleteRows(2, lr-1);
}