仅当列G为Y时,才在列L上发送地址的电子邮件

时间:2017-05-21 18:16:22

标签: google-apps-script google-sheets spreadsheet google-sheets-api

你能给我一些帮助吗?我是一个总菜鸟,所以我非常感谢你的帮助:)。

我正在尝试为电子表格创建一个脚本,该电子表格每次都会在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")"

1 个答案:

答案 0 :(得分:0)

您的代码运行正常,但我可以看到一些问题。

  1. 您没有说,但是当您收到错误时,您使用的是调试器吗?请注意,事件对象(e)仅在触发触发器时接收信息。即如果您尝试使用调试器来测试onEdit(e)函数,则没有信息传递给(e),因为触发器尚未触发。

  2. 阅读Google Documentation,特别是有关限制的部分。它说是

  3.   

    他们[简单触发器]无法访问需要授权的服务。例如,简单的触发器无法发送电子邮件,因为Gmail服务需要授权,但简单的触发器可以使用匿名的语言服务翻译短语。

    因此,要使您的脚本正常工作,您需要转到编辑 - >当前项目触发并创建onEdit触发器

    onEdit trigger settings