簡體   English   中英

如果單元格的值低於特定值,則發送電子郵件

[英]Send email if cells' value is below certain value

我絕對是新手,為了做個工作腳本而竭盡全力。 我需要每天檢查員工的認證,如果過期,請重新認證。 這是一個帶有隨機數據的“測試”電子表格: https : //docs.google.com/spreadsheets/d/1vJ8ms5ZLqmnv4N1upNHD4SRfgIgIbEAbandAndvUNy-s9S4/edit?usp=sharing

它列出了在我部門工作的人員,以及其證件編號和其證書有效的天數。 原始工作表采用了另一個電子表格中的天數值,但不應對此產生影響(我認為?)。

我要實現的目標是編寫一個檢查C3:G24中所有數字的腳本。 如果此范圍內的任何單元格的值都小於15,則應從同一行中提取其徽章編號和名稱,以及其證書適用的“天”,並發送包含所有這些數據的電子郵件。

例如

主題:證書即將過期

電子郵件內容:具有Badge#(A列中的#)的員工(B列中的名稱)證書的證書將在X天內過期(其中X =范圍C3:G24中的數字)。

到目前為止,我最好的嘗試是至少使它在編輯時發送任何電子郵件,但慘無人意地嘗試改編任何在線發現的腳本。 這是至少可以發送電子郵件的方法,但是后來我做了一些破解工作:

function checkValue()
{
  var ss = SpreadsheetApp.getActive();//not sure if needed, the spreadsheet eventually doesn't have to be open/active
  var sheet = ss.getSheetByName("Certifications");

  //not sure if this is ok
  var valueToCheck = sheet.getRange("C3:G24").getValue();

  //Here I'd like to change the "days" based on needs
  if(valueToCheck < 15)
  {
    MailApp.sendEmail("email@company.com","Certifications","Your employee certification will expire soon" + valueToCheck+ ".");
  }
}

有人可以幫我指引正確的方向嗎?

這是我會做的:

function checkValue()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Certifications");
  var valueToCheck = sheet.getDataRange().getValues();
  var resultValues = [];
  valueToCheck = valueToCheck.filter(function(element){
    var val = 0
    if (parseInt(element[2]) < 15)
    {
      resultValues.push({col: "Cert1", value: element[2]})
      return (true);
    }
    else if (parseInt(element[3]) < 15)
    {
      resultValues.push({col: "Cert2", value: element[3]})
      return (true);
    }
    else if (parseInt(element[4]) < 15)
    {
      resultValues.push({col: "Cert3", value: element[4]})
      return (true);
    }
    else if (parseInt(element[5]) < 15)
    {
      resultValues.push({col: "Cert4", value: element[5]})
      return (true);
    }
    else if (parseInt(element[6]) < 15)
    {
      resultValues.push({col: "Cert5", value: element[6]})
      return (true);
    }
  })
  for(var i = 0; i < valueToCheck.length; i++)
  {
    MailApp.sendEmail("mail@company.com","Certifications","your employee's " + valueToCheck[i][1] + "with badge " + valueToCheck[i][0]  + " certification will expire in " + resultValues[i].value + " days (column " + resultValues[i].col + ").");
  }
}
  1. 使用getValues()函數檢索數據。
  2. 然后根據值小於15的條件過濾值
  3. 同時獲取列名和少於15個數據。
  4. 通過兩個數組解析以將數據發送到您的郵件

暫無
暫無

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

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