我在这个脚本上工作了很长时间,它是谷歌应用程序脚本,它会自动向提供的电子邮件发送电子邮件警报,我每运行1分钟就会触发一次脚本。
所以,如果小区总数大于201,它将向用户发送电子邮件。但问题是它每运行一分钟脚本就发送一封电子邮件。
我需要编码方面的帮助,如果电子邮件已经发送过一次,它将不会再次发送,除非单元格值再次小于201并返回到大于201,我正在考虑制作一个包含文本"已发送"或"未发送"的单元格
如果上面写着"未发送",那么如果总数大于201,就让电子邮件代码运行如果是说"已发送"并且总数大于201,不要让电子邮件代码运行。。
我知道我不是很清楚,但在这方面很难得到帮助。这是代码。
如果这有效的话,我相信很多人都可以使用这个脚本。
function sendEmail(email_address, email_subject, email_message) {
MailApp.sendEmail(email_address, email_subject, email_message);
}
function test_sendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.setActiveCell('A2');
var criterion_cutoff = 201;
var i = 0;
var addr;
var subj;
var msg;
do {
addr = cell.offset(i,0).getValue();
subj = cell.offset(i,1).getValue();
msg = cell.offset(i,2).getValue();
criterion = cell.offset(i,3).getValue();
if(criterion == criterion_cutoff) {
sendEmail(addr,subj,msg);
// Browser.msgBox('Sending email to: ' + addr);
}
i++;
} while( cell.offset(i, 0).getValue().length > 0 )
Browser.msgBox('Done!');
}
所以我想在的时候添加其他条件
if(SpreadsheetApp.getActiveSheet().getRange(21,6).getValue() != 'Not Sent') {
do {
//same stuff as above
} while(condition)
}
else
//don't know wht else to do in else condtion so just using googleclock
SpreadsheetApp.getActiveSheet().getRange(2,7).setValue('=GoogleClock()')
我想我自己已经想好了。我想分享我的解决方案,以便其他人可以使用它。
所以我添加了2个if else条件第一个将检查单元值是否<201如果小于201,则设置某个单元格示例F5=未发送
另一个if-else循环将检查如果值为F5!=已发送,单元格值==201它将运行电子邮件代码运行该电子邮件代码后,它会将单元格F5设置为"已发送"
所以下次循环再次运行时,它不会再次发送电子邮件,除非单元格的值是
但这有一个小问题,它只适用于3行中的第1行,你可以通过添加更多的条件来实现所有3行,我不需要它,所以我不担心。
function sendEmail(email_address, email_subject, email_message) {
MailApp.sendEmail(email_address, email_subject, email_message);
}
function test_sendEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.setActiveCell('A2');
var criterion_cutoff = 201;
var i = 0;
var addr;
var subj;
var msg;
if((SpreadsheetApp.getActiveSheet().getRange(2,4).getValue() < '201')) {
SpreadsheetApp.getActiveSheet().getRange(2,6).setValue('Not Sent');
}
else
if((SpreadsheetApp.getActiveSheet().getRange(2,6).getValue() != 'Sent') && (SpreadsheetApp.getActiveSheet().getRange(2,4).getValue() == '201')) {
do {
addr = cell.offset(i,0).getValue();
subj = cell.offset(i,1).getValue();
msg = cell.offset(i,2).getValue();
criterion = cell.offset(i,3).getValue();
if(criterion == criterion_cutoff) {
sendEmail(addr,subj,msg);
// Browser.msgBox('Sending email to: ' + addr);
SpreadsheetApp.getActiveSheet().getRange(2,6).setValue('Sent');
}
i++;
} while( cell.offset(i, 0).getValue().length > 0 )
Browser.msgBox('Done!');
}
}