【问题标题】:Create and update time in google form responses在谷歌表单回复中创建和更新时间
【发布时间】: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


【解决方案1】:

没有内置的方法可以做到这一点。

一种选择是您使用添加 URL 的脚本来编辑表单响应,以便在提交新表单响应时将时间戳添加到另一列,并在编辑表单响应时添加到另一列。

相关

【讨论】:

  • 嗨,我已经创建了脚本并复制粘贴在原始问题中,它仍然无法正常工作。使用我创建的脚本,它会捕获最后一列中的时间,但是当我再次编辑表单时,它会发生变化。我想获取此时间的创建日期,初始输入后时间不应更改。请检查代码并帮助我更正。
  • 请查看我粘贴在原始问题框中的代码并告诉我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多