簡體   English   中英

Google 表格 - 發送 Email

[英]Google Sheet - Send Email

每次條件變為真時,我都需要我的 google 表格來發送電子郵件。 在這種情況下,每次 C2 的值都低於 J2 的值。 在單元格 L2 上有 email 地址。

代碼(在網上找到並剛剛編輯)

function CheckPrice() {
  var LastPriceRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("C2"); 
  var LastPrice = LastPriceRange.getValue();
  var EntryLimitRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("J2"); 
  var EntryLimit = LastPriceRange.getValue();
  var StockNameRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("B2"); 
  var StockName = LastPriceRange.getValue();
  // Check totals sales
  if (LastPrice < EntryLimit){
    // Fetch the email address
    var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts").getRange("L2");
    var emailAddress = emailRange.getValues();
  
    // Send Alert Email.
    var message = 'Ticker ' + StockName + ' has triggered the alert';
    var subject = 'Stock Alert';
    MailApp.sendEmail(emailAddress, subject, message);
    }
}

使用此代碼我沒有收到任何錯誤,但我什至沒有收到 email。我在第一次運行腳本時按要求授予了權限。

在 L2 上,我放置了我授予權限的相同 email 地址(我將 email 發送給自己)。 我什至嘗試放置一個輔助 email 地址。

你能告訴我哪里出了問題嗎?

問題:

  • 查看您定義LastPriceEntryLimitStockName的代碼的第一行。 他們都來自同一個范圍: LastPriceRange

  • 我還刪除了腳本中所有不必要的調用。 無需多次調用SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts") ,您只需將其放入一個變量並使用該變量即可。

  • 此外,您不需要定義不必要的變量。 例如,您可以使用一行獲取單元格的值: sh.getRange("B2").getValue()

解決方案:

function CheckPrice() {
  
  const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Alerts");   
  const LastPrice = sh.getRange("C2").getValue();
  const EntryLimit = sh.getRange("J2").getValue();
  const StockName = sh.getRange("B2").getValue(); 

  // Check totals sales
  if (LastPrice < EntryLimit){
    // Fetch the email address
    const emailAddress = sh.getRange("L2").getValue();
  
    // Send Alert Email.
    const message = 'Ticker ' + StockName + ' has triggered the alert';
    const subject = 'Stock Alert';
    MailApp.sendEmail(emailAddress, subject, message);
    }
}

如果您希望在編輯特定單元格時發送 email,則需要將上述解決方案轉換為onEdit(e)觸發器。 如果你想要一個時基觸發器,那么你可以直接使用上面的解決方案。

暫無
暫無

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

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