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 statment:

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

你需要評估兩件事情,第一,如果用戶正在編輯一個欄和第二,如果單元格的值是「Y」。

對於第一個,您已經具有cellvalue中當前單元格的值,因此只需評估是否爲cellvalue == "Y"

對於第二個,您需要評估用戶是否正在編輯A列,您可以使用.getColumnIndex()這將得到範圍的索引,在這種情況下,單元格A列將返回1,因此您需要評估sheet.getActiveCell().getColumnIndex() == 1

現在,您只需要使用logical operator &&來檢查兩個表達式是否都計算爲true。

你行應該是這樣的:

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

最後以確保電子郵件被髮送只有上面的行計算結果爲真,移動subjectbodyMailApp if語句裏面:

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

絕對救生員! –

相關問題