已为FormSubmit = e.range安装触发器无法调用未定义的方法GetRowIndex吗?

时间:2018-09-18 14:15:39

标签: google-apps-script google-sheets triggers google-form

所以我有一个已安装的触发器:

function CreateRebateExtTrig() {

var ExtFrm = FormApp.openById("ID");
  ScriptApp.newTrigger('ExtSubmit')
  .forForm(ExtFrm)
  .onFormSubmit()
  .create()
}

提交表单。我正在尝试获取表格上填写的特定问题的答案,以替换遗留的不正确的版本表格(它删除了前导0,但表格响应显示为0)

我在同一Google工作表上设置了另一种表单,但使用相同的流程在另一工作表上进行了设置。完全相同,相同的变量“范围”和“行”

function ExtSubmit(e) {

 var range = e.range;
 var ss = range.getSheet();
 var row = range.getRowIndex();
 var formResponse = e.response;
 var itemResponses = formResponse.getItemResponses();

   for (var i=0; i<itemResponses.length; i++) {
    switch (itemResponses[i].getItem().getTitle()) {
     case "dummy text for stack overflow":
      var IDCF2 = itemResponses[i].getResponse();
     console.log({message: IDCF2})
    break;
    }
  }

在我添加“行”和“范围”之前,e正在处理console.log IDCF2,并返回正确的值,前导0。一旦我把e.range和range.getSheet放进去,它就坏了:(不知道为什么。如果有人可以帮助我,我将不胜感激。建议/代码/来源。

我当前的错误是:

enter image description here

enter image description here

干杯

1 个答案:

答案 0 :(得分:0)

function ExtSubmit(e) {

  if(e.range.getSheet().getName()==="Form Responses 3"){

    //rest of code below

我用I'-'我在评论中回答我的问题,我只是在其他脚本文件上使用了与上面相同的代码,但使用了“ Form Responses 2”,并且可以正常工作,

谢谢你,先生!