0

私はフォーラムを通して検索しましたが、答えはそこにある可能性が高いですが、私は助けが必要です。列Aのセルの単純なYESがEMAILをトリガーします

列Aに「Y」という文字が入力されている場合は、所定の人物リストに自動的に電子メールが送信されます。理想的には、この電子メールには、行データ(明細、仕入先、合計、ジョブなど)に従って自動的に生成された電子メール本文が含まれます。

これまでに書いたのはこれです。メールを送信する毎回私は変更を行います。私は、プロジェクトのトリガーとif (Index of)ビットを改良しようとしましたが、うまくいきませんでした。

function sendNotification() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 
    var cell = ss.getActiveCell().getA1Notation(); 
    var row = sheet.getActiveRange().getRow(); 
    var cellvalue = ss.getActiveCell().getValue().toString(); 
    var recipients = "[email protected]"; 
    var message = ''; 
    if(cell.indexOf('A')!="Y"){ 
    message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue() 
    } 
    var subject = 'Update to '+sheet.getName(); 
    var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message: «' + message + '»'; 
    MailApp.sendEmail(recipients, subject, body); 
}; 

答えて

2

あなたはほぼそこにいます!あなたのifなステートメントで

if(cell.indexOf('A')!="Y"){ 

セルの値が「Y」である場合は、ユーザーが列Aを編集し、二れる最初の場合は、二つのことを評価する必要があります。

最初のセルでは、現在のセルの値はすでにcellvalueになっていますので、cellvalue == "Y"と評価してください。

2番目の場合、ユーザーが列Aを編集しているかどうかを評価する必要があります。.getColumnIndex()これは範囲のインデックスを取得します。この場合はセル、列Aは1を返します。 sheet.getActiveCell().getColumnIndex() == 1

ここで、logical operator &&を使用して、両方の式が真であるかどうかを確認するだけです。

:確認メールが上記の行が真と評価された場合にのみ、if文の内側に subjectbodyMailAppを移動送らされていることを確認するために最後に

if(cellvalue == "Y" && sheet.getActiveCell().getColumnIndex() == 1){ 

あなたの行は次のようになります。

function sendNotification() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 
    var cell = ss.getActiveCell().getA1Notation(); 
    var row = sheet.getActiveRange().getRow(); 
    var cellvalue = ss.getActiveCell().getValue().toString(); 
    var recipients = "[email protected]"; 
    var message = ''; 
    if(cellvalue == "Y" && sheet.getActiveCell().getColumnIndex() == 1){ 
    message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue(); 
    var subject = 'Update to '+sheet.getName(); 
    var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message: «' + message + '»'; 
    MailApp.sendEmail(recipients, subject, body); 
    } 
}; 
+0

絶対ライフセーバー! –

関連する問題