簡體   English   中英

需要幫助,以迭代Google表格中的一列,並根據單元格中的每個單獨值發送電子郵件

[英]Need help iterating down a column in google sheets and sending out an email based on each individual value in the cells

我猜這是一件簡單的事情,但是我不確定該怎么做。 我有一個要每天運行的google腳本,該腳本會分別檢查google表格中一列內單元格的值,並在該值降至某個閾值以下時發送一封電子郵件。

我到目前為止所擁有的是

function sendEmail() {
  var data = SpreadsheetApp.getActiveSheet().getRange('E2').getValue();
  if (data < 300){
     var emailAddress = "emailaddress@email.com";
     var message = "test body";
     var subject = "test subject";
     MailApp.sendEmail(emailAddress, subject, message);
  }
}

編輯

這就是我現在的位置。 除了從單元格中提取電子郵件之外,它都有效。

function sendEmail() {

    function letThemKnow(num) { //This creates a function named letThemKnow which is passed the variable num from the if/else statements
        var emailAddress = email[i]; //Sets the variable to the email address of
        var message = "Greetings! This is an automated message to let you know your license for " + software[i] + " expires in " + num + " days.";
        var subject = "Impending expiration of " + software[i];
        MailApp.sendEmail(emailAddress, subject, message);
    }
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sh = ss.getActiveSheet();
    var lastRow = sh.getLastRow();
    var data = sh.getRange(2, 5, lastRow, 1).getValues();
    var software = sh.getRange(2, 1, lastRow, 1).getValues();
    var email = sh.getRange(2, 7, lastRow, 1).getValues();
    for (i = 0; i <= email.length; i++) {
        for (i = 0; i <= software.length; i++) {
            for (i = 0; i <= data.length; i++) {
                var num = parseInt(data[i]);
                if (num == 30) {
                    letThemKnow(num)
                } else if (num == 14) {
                    letThemKnow(num)
                } else if (num <= 7) {
                    letThemKnow(num)
                }
            }

        } // 
    }
} // 

您的for循環從“ 0”開始,到“ 0”結束。 嘗試這個:

function sendEmail() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  var lastRow = sh.getLastRow();
  var data = sh.getRange(2,5,lastRow,1).getValues();
  for (i=0;i <= data.length;i++){
     var num = parseInt(data[i]);
     if (num < 300) {
       var emailAddress = "email@email.com";
       var message = "test body";
       var subject = "test subject";
       MailApp.sendEmail({
           name: "Your Name",
           to: emailAddress,
           subject: subject,
           htmlBody: message
       });
     }
   }
}

如果每次電子郵件都相同,則可能應該在循環外部定義這些變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM