对于我构建的脚本,我有一个需要“清理”每个“n次”的表单,删除所有响应,并且还需要清除它所绑定的电子表格。
虽然清除它看似简单(form
和sheet
引用表单和相应的表单,但它是从电子表格的范围执行的。)
form.deleteAllResponses();
var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());
range.clearContent();
这似乎不起作用:它会产生副作用。表单似乎希望“重新开始”并且只添加一组表示答案的新列,而不是使用现有列,即4列到D列中的4个答案,清理后的下一个提交将在E列中到H。
现在改变
form.deleteAllResponses();
sheet.clear();
然而,这会产生“类似”问题:表单会再次创建一组要使用的新列。 在工作表的最后一列之后。
那么我怎么能告诉表单“只是开始重用第一列” - 换句话说:我如何告诉电子表格“清理最后编辑的列后是A”?
答案 0 :(得分:0)
表单索引哪个行是"活动"表单提交的行。您希望确保删除整行,而不仅仅是清除内容。这应该这样做:
function clearAll() {
var form = SpreadsheetApp.getActiveSpreadsheet().getFormUrl();
FormApp.openByUrl(form).deleteAllResponses();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("formData");
sheet.deleteRows(2, sheet.getLastRow());
}