如何清除谷歌电子表格中的所有单元格(并更改上次编辑的列)

时间:2017-09-19 15:41:02

标签: google-apps-script google-sheets google-form

对于我构建的脚本,我有一个需要“清理”每个“n次”的表单,删除所有响应,并且还需要清除它所绑定的电子表格。

虽然清除它看似简单(formsheet引用表单和相应的表单,但它是从电子表格的范围执行的。)

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”?

1 个答案:

答案 0 :(得分:0)

表单索引哪个行是"活动"表单提交的行。您希望确保删除整行,而不仅仅是清除内容。这应该这样做:

function clearAll() {
  var form = SpreadsheetApp.getActiveSpreadsheet().getFormUrl();
  FormApp.openByUrl(form).deleteAllResponses();
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("formData");
  sheet.deleteRows(2, sheet.getLastRow());
}