我正在尝试根据我的Gdoc中的文本更改发送自动生成的邮件, 如果单元格有价值,我的要求是发送邮件" SEND ALERT MAIL" 否则如果单元格有价值"不需要警报邮件"只需在状态栏(Gdoc)中添加一些文字。
唯一的条件是仅在邮件中发送相应的行数据,但脚本无论条件如何都发送13封邮件。
请帮忙!
代码..
function sendEmail()
{
var sheet = SpreadsheetApp.getActiveSheet();
var Totalcol=sheet.getLastColumn()-4;
var StartRow =2;
var LastCol = sheet.getLastColumn()-1;
var LastRow = sheet.getLastRow();
var Indic = sheet.getRange(StartRow,LastCol).getDisplayValue();
for (var i = 0; i <= LastRow; i++)
{
var row = LastRow[i];
var dataRange = sheet.getRange(StartRow, 1, 1, Totalcol);
var Offer = dataRange.getValues();
if(Indic=="SEND ALERT MAIL")
{
MailApp.sendEmail("xyz@gmail.com", "Offer Alert", Offer);
}
else if(Indic=="NO ALERT MAILS NEEDED")
{
var cell = sheet.getRange("H2");
cell.setValue("Alert date not reached !");
}
}
}
答案 0 :(得分:0)
我修改了我的工作表和代码以提高可读性, while循环不按预期工作。
我的逻辑非常简单,只需将Msg1,Msg2值邮寄到第1列中的邮件地址IF“Indicator Msg”列的值为“SEND ALERT MAIL”并填写“Status”列中的一些文本IF“Indicator Msg”列值“不要”。
function sendEmails2()
{
var sheet = SpreadsheetApp.getActiveSheet();
var VLastCol = sheet.getLastColumn();
var startRow = 2; // First row of data to process
var LastRow = sheet.getLastRow();
var LastCol = sheet.getLastColumn()-1;
var dataRange = sheet.getRange(startRow, 1, LastRow, LastCol)
var data = dataRange.getValues();
var Indic = sheet.getRange(startRow,LastCol).getDisplayValue();
//for (var i = 0; i <= LastRow; ++i)
do
{
//var row = data[i];
startRow=startRow+1;
var emailAddress = sheet.getRange(startRow,1).getDisplayValue(); // First column
var message = sheet.getRange(startRow,2).getDisplayValue(); // Second column
var message1 = sheet.getRange(startRow,3).getDisplayValue(); // Third column
if(Indic=="SEND ALERT MAIL")
{
var subject = "Sending emails from a Spreadsheet";
MailApp.sendEmail(emailAddress, subject, message +' '+ message1);
}
//SpreadsheetApp.flush();
else if(Indic != "SEND ALERT MAIL")
{
var cell = sheet.getRange(startRow,VLastCol);
cell.setValue("Date not reached")
}
//var val = sheet.getRange(startRow,LastCol).getDisplayValue();
}
while(Indic == null)
}