如何将 "e" 参数传递给用触发器调用的函数?
How to pass the "e" parameters to a function called with a trigger?
我正在处理一个简单的电子表格,当我提交 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
为什么?
我简单地定义了这个函数,link它用适当的菜单语音触发。
这是一个错误。我注意到最好删除触发器,保存脚本,并在对其调用的函数进行更改时重新创建它。这样我就从来没有遇到过问题,不这样做会导致奇怪的行为。
我正在处理一个简单的电子表格,当我提交 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
为什么?
我简单地定义了这个函数,link它用适当的菜单语音触发。
这是一个错误。我注意到最好删除触发器,保存脚本,并在对其调用的函数进行更改时重新创建它。这样我就从来没有遇到过问题,不这样做会导致奇怪的行为。