在谷歌表单响应中创建和更新时间

时间:2021-06-26 11:06:22

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

是否可以获取谷歌表单(回复)提交时间和更新时间?

我已经创建了谷歌表单并且回复被记录在谷歌表中。提交响应后,它会自动捕获第一列“时间戳”下的时间。现在,如果响应更新(例如在三个小时后),那么最初记录的时间(时间戳)也会更新。顺便说一下,我创建了脚本,该脚本生成链接以在最后一栏中编辑响应,以便用户可以随时更新他们的响应。是否有任何解决方法可以让响应提交(创建)时间并在不同列中更新?

感谢任何帮助。

正如鲁本所建议的,

我已经创建了下面的脚本,但它不起作用

    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);
    }

    }

它正在更新最后一列的时间,但是如果我更新表单响应,它会再次更新。我想要创建日期,应该在初始条目中输入。请帮助我更正我的脚本。

1 个答案:

答案 0 :(得分:0)

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

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

相关