如何将“e”参数传递给使用触发器调用的函数?

时间:2015-05-19 13:54:03

标签: google-apps-script google-sheets

我正在处理一个简单的电子表格,并且在提交Google表单中的表单时需要执行一些操作,并将值插入电子表格中。阅读我发现我需要触发器的文档,这一切看起来都很简单,但我遗漏了一些东西:

function setIncomes(e){
 var sheet = e.source;
 sheet.getRange('a1').setNote(Object.getOwnPropertyNames(e));
 sheet.getRange('a2').setNote(e);
 var row = e.values;

 if(row[4] == "Vincita" || row[4] == "Stipendio"){
   //do nothing
 }else{
  row[2] = 0 - row[2];
 }
 e.range.setValue(row);
 return row;
}

重要的一行是4行:sheet.getRange('a1').setNote(Object.getOwnPropertyNames(e));

这里我得到(为了调试)e对象的属性列表,根据documentation应该包括:

  • e.values
  • e.range
  • e.namedValues

但我得到的只是:

  • e.source
  • e.authMode

为什么?

我只是简单地定义了这个函数,并用适当的menù语音将它链接到一个触发器。

1 个答案:

答案 0 :(得分:0)

这是一个错误。我注意到最好删除触发器,保存脚本,并在对其调用的函数进行更改时重新创建它。这样我从来没有遇到过问题,也没有造成奇怪的行为。