我正在尝试为电子表格创建一个脚本,该电子表格每次都会在L
列上的电子邮件地址发送消息,同一行G
列为Y
}。
例如:
如果将G9
编辑为Y
,则会将电子邮件发送到L9
上指定的地址。
目前,我正在尝试下面的脚本,但它不起作用:
function onEditTrigger(e){
var range = e.range;
var intCol = range.getColumn();
if (intCol == 7){
var intRow = range.getRow();
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(intRow, 12, 11, 8);
var dataValues = dataRange.getValues();
MailApp.sendEmail(dataValues[0][0], "Notification", "Value in column C: "
+ dataValues[0][2]);
}
}
错误:
"TypeError: Cannot read property "range" from undefined. (line 2, file "send e-mail")"
答案 0 :(得分:0)
您的代码运行正常,但我可以看到一些问题。
您没有说,但是当您收到错误时,您使用的是调试器吗?请注意,事件对象(e)
仅在触发触发器时接收信息。即如果您尝试使用调试器来测试onEdit(e)
函数,则没有信息传递给(e)
,因为触发器尚未触发。
阅读Google Documentation,特别是有关限制的部分。它说是
他们[简单触发器]无法访问需要授权的服务。例如,简单的触发器无法发送电子邮件,因为Gmail服务需要授权,但简单的触发器可以使用匿名的语言服务翻译短语。
因此,要使您的脚本正常工作,您需要转到编辑 - >当前项目触发并创建onEdit触发器