【发布时间】:2021-06-26 11:06:22
【问题描述】:
有没有获取谷歌表单(响应)提交时间和更新时间?
我已经创建了谷歌表单,并且回复被记录在谷歌表格中。提交响应后,它会自动在第一列“时间戳”下捕获时间。现在,如果响应被更新(例如三个小时后),那么最初记录的时间(时间戳)也会更新。顺便说一句,我创建了脚本,该脚本在最后一列中生成编辑响应的链接,以便用户可以随时更新他们的响应。是否有任何解决方法可以让响应提交(创建)时间并在不同列中更新?
感谢任何帮助。
按照鲁本的建议,
我在下面创建了脚本,但它不起作用
function assignEditUrls() {
var form = FormApp.openById('1UoHiwgl2Kw6RK5c7-
0kp1iFP0CPPR_LDbvSm1hw9xLg');
var sheet =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form
responses 1');
var data = sheet.getDataRange().getValues();
var urlCol = 16;
var responses = form.getResponses();
var timestamps = [], urls = [], resultUrls = [];
for (var i = 0; i < responses.length; i++) {
timestamps.push(responses[i].getTimestamp().setMilliseconds(0));
urls.push(responses[i].getEditResponseUrl());
}
for (var j = 1; j < data.length; j++) {
resultUrls.push([data[j][0]?urls[timestamps.indexOf(data[j]
[0].setMilliseconds(0))]:'']);
}
sheet.getRange(2, urlCol,
resultUrls.length).setValues(resultUrls);
{
var blankRow=sheet.getLastRow(); //identify the next blank row
// date function to update the current date and time as
submittted on
var value = sheet.getRange(blankRow, 19).setValue(new
Date()).setNumberFormat('dd-mm-yyyy h:mm:ss'); //Submitted On
sheet.getSheetValues(value);
}
}
它正在更新最后一列中的时间,但如果我更新表单响应,那么它会再次更新。我想创建应在初始条目中输入的日期。请帮助我在我的脚本中进行更正。
【问题讨论】:
-
如何阻止用户编辑并强制他们再次回答表单,然后在工作表上检查用户的答案?这样您将拥有原始时间戳和更新时间戳
-
好主意;但是,我创建了呼叫评估表格,其中有 38 个参数需要填写。在第二天左右他们检查他们的数据,如果有任何选择错误或任何其他错误,他们必须更正它
-
那么如何保存创建的日期,也许在另一张纸上,然后将它与新的更新日期配对到正确的行?
-
你能告诉我如何保存创建日期并配对吗?我想到的解决方法是在每次提交表单时将最后一个原始文件复制到另一张纸上,所以即使有人编辑了也会被复制到另一张纸上的回复。但是这里另一张表将有单独的条目(即最初提交的响应 + 编辑后的响应)。
-
Can you tell me how to save created date and pair it是什么意思?您提到的解决方法是我在最后一条评论中建议的,可以通过使用Google Forms events 来完成,是的,这意味着您将在同一个电子表格中拥有一个带有结果的表格,另一个带有时间戳的表格,我将使用另一张将两张纸配对。
标签: google-apps-script google-sheets google-forms