未在连接的Google表格中填充Google Form响应链接

时间:2019-07-02 22:33:34

标签: google-apps-script google-form

我有一个Google表单和Google工作表已连接。该代码似乎也正确,但是在运行脚本时出现错误-

  

“找不到方法getResponses(string)”

这是我为脚本准备的代码。

var formURL = '1Ve6ihda_zQycSxaFbe2YkbegrxGbcTnNqacd_W7HQbh';
var sheetName = 'Form Responses 1';
var columnName = 'Edit Url' ;
var startRow = 3;

function getEditResponseUrls(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
  var columnIndex = headers[0].indexOf(columnName);
  var data = sheet.getDataRange().getValues();
  var form = FormApp.openById(formURL);
  for(var i = startRow-1; i < data.length; i++) {
    if(data[i][0] != '' && data[i][columnIndex] == '') {
      var timestamp = data[i][0];
      var formSubmitted = form.getResponses(timestamp);
      if(formSubmitted.length < 1) continue;
      var editResponseUrl = formSubmitted[0].getEditResponseUrl();
      sheet.getRange(i+1, columnIndex+1).setValue(editResponseUrl);
    }
  }
}

抛出错误的行:

var formSubmitted = form.getResponses(timestamp);

1 个答案:

答案 0 :(得分:1)

问题:

该错误消息表明timestamp的值是字符串类型。

解决方案:

对于getResponses(timestamp)的方法,请使用日期对象。那么如何进行如下修改?

从:
var formSubmitted = form.getResponses(timestamp);
至:
var formSubmitted = form.getResponses(new Date(timestamp));

注意:

  • 我认为getValues()检索的日期值是日期对象。因此可能需要知道var timestamp = data[i][0]的值。

参考:

如果这不是您的问题的解决方案,我深表歉意。那时,我可以问一下timestamp和/或示例电子表格的值吗?