首页 > 解决方案 > 当特定值出现在一行或整个工作表中时发送电子邮件

问题描述

首先,是的,我是新手:)

我想在特定值连续出现时发送电子邮件,或者如果此检查可以在整个工作表中更好,我想发送一封电子邮件......这两种解决方案都将有助于我理解我在做什么:)

我知道创建此功能后,我需要使用触发功能

非常好的问候,并提前感谢您的帮助。

塞布

这是我在网上找到的一些代码的脚本...

function CheckError() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('HistoMeteo'); //source sheet
  var testrange = sheet.getRange('B:B'); //range to check
  var testvalue = (testrange.getValues());
  var csh = ss.getSheetByName('HistoMeteo'); //destination sheet
  var data = [];
  var j =[];

  //Condition check in B:B; If true copy the same row to data array
  for (i=0; i<testvalue.length;i++) {
    if ( testvalue[i] == '#N/A') {
    // Fetch the email address in B2
    var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('HistoMeteo').getRange('B2');
    var emailAddress = emailRange.getValues();
    //var DailyTempsRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('HistoMeteo').getRange('B13'); 
    //var DailyTemps = DailyTempsRange.getValue();
  // Send Alert Email
    var subject = 'Hoho Error in your page';
    var message = 'N/A message in your page check it asap';
    MailApp.sendEmail(emailAddress, subject, message);
    }
  }
};

标签: google-apps-scriptgoogle-sheets

解决方案


参数 (number[],String,String) 与“MailApp.sendEmail”方法的签名不匹配

  • 该方法MailApp.sendEmail除了三个参数 - 它们都是字符串: (String,String,String)
  • 第一个参数 - 在您的情况下,电子邮件地址已被识别为数字数组
  • 为什么?因为您将返回值传递给它emailRange.getValues();
  • getValues()会为您返回一个二维值数组- 即使您将其应用于单个单元格
  • getValues()解决方法:通过替换getValue()

推荐阅读