在满足多个列的多个条件时发送电子邮件 - Google Sheet Script

时间:2018-04-03 09:38:59

标签: javascript google-apps-script google-sheets

这是我第一次在这里发帖,在理解代码时我是新手。我会尽力澄清所期望的结果和我所处的位置。

我有一个“A列”,它是一个包含选项“1,2,3,4,5”的下拉列表。 在同一张纸上,我有另一列 - “B列”,它是一个下拉列表,其中包含选项“A,B”

期望的结果 - 每当用户选择选项“2”和选项“B”时,应该向收件人触发电子邮件。

当前状态 - 我浏览了这个thread,而Cooper的解决方案让我在一定程度上得到了解决。但是,当有两个条件需要满足时,我无法发送电子邮件。这就是我设置触发器的方法 - 函数sendNotification - >来自电子表格 - >在编辑

任何帮助将不胜感激。 提前谢谢!

编辑 - 这是我正在使用的代码 -

    function sendNotification(e){
     if(e.range.getColumn()==9 && e.value=='Approved'){
      var recipients = "blah@blah.com";
      var subject = "Custom Subject Line";
      var valColB=e.range.getSheet().getRange(e.range.getRow(),2).getValue();
      var body = "Custom body with variable - " + valColB + "from the sheet titled - " + e.range.getSheet().getName();
     MailApp.sendEmail(recipients, subject, body)
 }
}

编辑2 - 这是我尝试的另一种方法,但不知何故,这甚至都行不通。当我在funTwo中放入IF语句时,它将无法工作。

function funOne(e) {
  if(e.range.getColumn() == 5 && e.value == 'Option 2') {
    funTwo();
  }
}

function funTwo(a) {
  if(a.range.getColumn() == 9 && a.value == 'Option B') {
    MailApp.sendEmail('blah@blah.com, 'subject', 'body')
 }
}

1 个答案:

答案 0 :(得分:0)

使用offset添加另一个条件:

尝试从

更改
if(e.range.getColumn()==9 && e.value=='Approved'){

if(e.range.getColumn()==9 && e.value=='Approved' && e.range.offset(0,-1).getValue() == '2' ){ //if ninth column is edited to Approved and the corresponding eighth column is 2, then...