在列中查找文本,并在找到时仅发送一次电子邮件

时间:2015-04-25 10:19:49

标签: google-apps-script google-sheets

我想创建一个谷歌脚本,在A列中搜索文本(在单元格C2中给出),并在找到文本时向单元格C3中的地址发送电子邮件(仅一次)。

列A存在来自importXML公式的文本结果。

我已经搜索过并搜索过但我无法找到它,而且我甚至还没有开始编写新内容:(非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

以下是如何完成此操作的示例,我使用背景颜色标记已在其中发送邮件的A列中的单元格(以避免多次发送)。

它会向电子表格用户发送邮件并在C3中解决,但您当然可以根据自己的需要进行调整。

// test sendMailOnCondition


function sendMailOnCondition(){
  var sh = SpreadsheetApp.getActiveSheet();
  var condition = sh.getRange("C2").getValue();
  var email = sh.getRange("C3").getValue();
  Logger.log(condition);
  var valuesInColumnA = sh.getRange("A1:A").getValues();
  var colorsInColumnA = sh.getRange("A1:A").getBackgrounds();
  for (var n=0;n<valuesInColumnA.length;n++){
    Logger.log(colorsInColumnA[n][0]);
    Logger.log(valuesInColumnA[n][0]);
    if(valuesInColumnA[n][0]==condition && colorsInColumnA[n][0]=='#ffffff'){
      colorsInColumnA[n][0]="#DDD";
      MailApp.sendEmail(Session.getActiveUser().getEmail(),"test mail","Row number "+Number(n+1)+" has value "+condition);// remove this line if you don't need it
      MailApp.sendEmail(email,"test mail","Row number "+Number(n+1)+" has value "+condition);
    }
  }
  sh.getRange("A1:A").setBackgrounds(colorsInColumnA);// update cells colors
}

编辑:为了安全起见并避免在单元格C2为空时错误地发送许多电子邮件(这在测试时发生在我身上;-)你可以在&#39; if && 39;中添加第三个条件#39;声明:condition !=""

该行变为:

if(condition !="" && valuesInColumnA[n][0]==condition && colorsInColumnA[n][0]=='#ffffff'){