我通过工具->脚本编辑器->编辑->当前项目的触发器-> ...向我的Google工作表添加一个onChange触发器。我认为onChange仅在数据/工作表的结构更改时才触发,例如,添加或删除行和/或列。但是,测试显示,也将在更改单元格值时触发onChange。
因此onChange触发器的行为几乎与onEdit触发器相同。我试图避免onEdit触发器,因为它触发得太频繁了,这降低了Google Sheet的速度。
理想情况下,我希望仅当添加新的行和/或列时才触发onChange。任何帮助将不胜感激!
答案 0 :(得分:1)
做这样的事情
function myOnchangeFunction(e) {
if(e.changeType=='EDIT') {
return;
}
}
答案 1 :(得分:1)
有一个事件对象,其中包含有关触发时触发触发器的上下文的信息。对于Google表格,事件对象具有一个changeType
参数,该参数是描述更改类型的字符串。如Event Objects Documentation中所述,它可以采用以下字符串值:
EDIT
INSERT_ROW
INSERT_COLUMN
REMOVE_ROW
REMOVE_COLUMN
INSERT_GRID
REMOVE_GRID
OTHER
库珀的答案将起作用,尽管还有其他所有更改类型,包括全部捕获OTHER
,它也会使该函数在诸如排序范围或插入图像之类的编辑时触发。尝试类似的东西:
function onChange(e){
if(e.changeType == 'INSERT_ROW' || e.changeType == 'INSERT_COLUMN'){
// your code here
}
else {
return;
}
}
然后在Edit > Current project's triggers > + Add Trigger
中正常设置可安装的触发器。