google-apps-script - 当特定值出现在一行或整个工作表中时发送电子邮件
问题描述
首先,是的,我是新手:)
我想在特定值连续出现时发送电子邮件,或者如果此检查可以在整个工作表中更好,我想发送一封电子邮件......这两种解决方案都将有助于我理解我在做什么:)
我知道创建此功能后,我需要使用触发功能
非常好的问候,并提前感谢您的帮助。
塞布
这是我在网上找到的一些代码的脚本...
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);
}
}
};
解决方案
参数 (number[],String,String) 与“MailApp.sendEmail”方法的签名不匹配
- 该方法
MailApp.sendEmail
除了三个参数 - 它们都是字符串:(String,String,String)
- 第一个参数 - 在您的情况下,电子邮件地址已被识别为数字数组
- 为什么?因为您将返回值传递给它
emailRange.getValues();
- getValues()会为您返回一个二维值数组- 即使您将其应用于单个单元格
getValues()
解决方法:通过替换getValue()
推荐阅读
- c# - 出现重复的 XML 结构标记
- python - Python 3,Tkinter 和线程一个长时间运行的进程,OOP 风格
- html - 具有自定义模式的 HTML 输入文本
- openshift - 仅更新 OKD 下的 kubernetes ( OpenShift )
- micronaut - Micronaut Bean 初始化顺序
- flutter - Flare/Flutter:如何在开始之前重置动画的进度?
- django - 'QuerySet' 对象在使用 timesince 时没有属性'year'
- git - Github 如何存储提交消息?
- c# - 如何捕获 DataReceivedEventHandler 引发的异常?
- karate - 空手道新手:无法从带有连字符的响应中获取值