我想创建一个谷歌脚本,在A列中搜索文本(在单元格C2中给出),并在找到文本时向单元格C3中的地址发送电子邮件(仅一次)。
列A存在来自importXML公式的文本结果。
我已经搜索过并搜索过但我无法找到它,而且我甚至还没有开始编写新内容:(非常感谢任何帮助。
答案 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'){