在列中查找文本并在找到时仅发送一次电子邮件
Find text in column and send email only one time when found
我想制作一个 google 脚本来搜索 A 列中的文本(在单元格 C2 中给出),并在找到文本时向单元格 C3 中给出的地址发送电子邮件(仅一次) .
A 列存在来自 importXML 公式的文本结果。
我找了又找,但我找不到它,而且我是一个编码新手,甚至无法开始:(非常感谢任何帮助。
下面是如何完成此操作的示例,我使用背景颜色标记 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
}
EDIT :为了安全和避免在单元格 C2 为空时错误地发送许多电子邮件(我在测试时刚好发生这种情况 ;-) 您可以将第三个条件添加到'if' 语句:condition !=""
该行变为:
if(condition !="" && valuesInColumnA[n][0]==condition && colorsInColumnA[n][0]=='#ffffff'){
我想制作一个 google 脚本来搜索 A 列中的文本(在单元格 C2 中给出),并在找到文本时向单元格 C3 中给出的地址发送电子邮件(仅一次) .
A 列存在来自 importXML 公式的文本结果。
我找了又找,但我找不到它,而且我是一个编码新手,甚至无法开始:(非常感谢任何帮助。
下面是如何完成此操作的示例,我使用背景颜色标记 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
}
EDIT :为了安全和避免在单元格 C2 为空时错误地发送许多电子邮件(我在测试时刚好发生这种情况 ;-) 您可以将第三个条件添加到'if' 语句:condition !=""
该行变为:
if(condition !="" && valuesInColumnA[n][0]==condition && colorsInColumnA[n][0]=='#ffffff'){