3

我有这个简单的脚本,当单元格更改时应该发送电子邮件

function onEdit(e) {  

var doc = e.source; 

 var r = doc.getActiveRange().getValue();


 if (r == "Niccolò"){
var a = doc.getActiveRange().setBackground('#ff0000');
var b = GmailApp.sendEmail('name@gmail.com', 'subject', 'body');

}

}

此功能还会更改单元格颜色。问题是单元格颜色有效,因此它在不发送任何电子邮件的情况下发生了变化。它看起来很简单,我不明白为什么不起作用!

4

1 回答 1

3

onEdit()像, onOpen()这样的简单触发器或onFormSubmit()由于未经授权而运行而具有有限的可能操作集,请参阅文档以获取更多详细信息。

所以你描述的这种行为是正常的。

您应该使用可安装的触发器,如同一文档页面中所述。

这是文档的摘要:

这些简单的触发器响应 Google 电子表格中的操作而运行,它们以活动用户的身份运行。例如,如果 Bob 打开电子表格,则 onOpen 函数以 Bob 的身份运行,无论是谁将脚本添加到电子表格。出于这个原因,简单触发器的操作受到限制:当电子表格以只读模式打开时,它们无法执行。他们无法确定当前用户。他们无法访问任何需要以该用户身份进行身份验证的服务。例如,谷歌翻译服务是匿名的,可以通过简单的触发器访问。Google 日历、Gmail 和协作平台不是匿名的,简单的触发器无法访问这些服务。他们只能修改当前的电子表格。禁止访问其他电子表格。有关事件权限的更多信息,

于 2012-10-22T16:51:18.523 回答