Google表单更新响应选项,而不是创建新行

时间:2013-12-02 07:04:25

标签: google-apps-script

如果响应电子表格中已存在时间戳,我想编辑响应选项而不是添加新响应。 这就是我的尝试。

function trial(event) {

  var email = "xxxx@gmail.com";
  var ss = SpreadsheetApp.getActiveSheet();
  var data = ss.getDataRange().getValues();
  var body = '';

  //Comapring timestamp in each row with the timestamp entered in the form
  var i = 0;
  while(i < data.length) {
    if(data[i][0].toString() ==  event.namedValues['Timstamp'].toString()){
      body += '\n The row number: ' + i;
      data[i][1] = 'ADDDDDDD';
      data[i][2] = event.namedValues['Status'].toString();
      ss.deleteRow(event.range.getRow());
    }
    i++;
  }



  var subject = "Delete Test";
  GmailApp.sendEmail(email, subject, body);

}

我在表单中输入时间戳作为值(我负责传递适当的时间戳,用户无需输入;它将被预先填充)。现在,如果匹配,则删除新响应但不修改旧响应。任何人都可以指出我的错误。

1 个答案:

答案 0 :(得分:3)

您的脚本会修改数据数组但不会将其写回电子表格...这就是您在电子表格中看不到任何更改的原因。

只需在循环后添加一行即可使用适当的数据更新工作表。我猜它可能像

ss.getRange(1,1,data.length,data[0].length).setValues(data);