如果响应电子表格中已存在时间戳,我想编辑响应选项而不是添加新响应。 这就是我的尝试。
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);
}
我在表单中输入时间戳作为值(我负责传递适当的时间戳,用户无需输入;它将被预先填充)。现在,如果匹配,则删除新响应但不修改旧响应。任何人都可以指出我的错误。
答案 0 :(得分:3)
您的脚本会修改数据数组但不会将其写回电子表格...这就是您在电子表格中看不到任何更改的原因。
只需在循环后添加一行即可使用适当的数据更新工作表。我猜它可能像
ss.getRange(1,1,data.length,data[0].length).setValues(data);