2017-05-17 18 views
0

私のGdocでテキスト変更に基づいて自動生成されたメールを送信しようとしています セルに値「SEND ALERT MAIL」がある場合はメールを送信します。 else cell値が "NO ALERT MAILS NEEDED"の場合、ステータス列(Gdoc)にテキストを追加するだけです。Googleアプリケーションスクリプト - セル値に基づいて自動生成されたメール

条件は各行データをメールのみで送信しますが、スクリプトは条件に関係なく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("[email protected]", "Offer Alert", Offer); 
    } 
    else if(Indic=="NO ALERT MAILS NEEDED") 
    { 
     var cell = sheet.getRange("H2"); 
     cell.setValue("Alert date not reached !"); 
    } 
    } 
} 

答えて

0

期待通りにループが動作していない間、私は読みやすく、 のための私のシートやコードを変更しました。

私のロジックは非常にシンプルで、1列目のメールアドレスにMsg1、Msg2値をメールするだけです。 "Indicator Msg"列には "SEND ALERT MAIL"という値があり、 "Status"列にはテキストを入力します。値 "DO NOTHING"。

Gdoc screenshot

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) 
} 
関連する問題