【发布时间】:2020-03-12 14:28:46
【问题描述】:
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 5; // Number of rows to process
// Fetch the range of cells A2:I6
var dataRange = sheet.getRange(startRow, 1, numRows, 10);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
var counter = 0;
var qua_num = [[]];
for (var i in data) {
var row = data[i];
var days = row[8];
if (days > -14) {
var emailAddress = row[9]; // First column
qua_num += [row[0]];
counter += 1;
}
}
var message = qua_num + ' equipment are approaching due date or out of cal. Please check with QA for replacement or sending the equipment out for re-calibration'; // Second column
var subject = 'Check Equipment Calibration Alert';
MailApp.sendEmail(emailAddress, subject, message);
}
当前的代码只允许我从谷歌电子表格发送到一个电子邮件地址。如果每行有不同的电子邮件地址(多行也可以有相同的电子邮件地址),我该如何更改功能?请参阅下面的 google 电子表格示例。
Screenshot of Google Spreadsheet
根据电子表格中的信息,QUA-005 和 QUA-007 满足 if 语句的条件。预期的输出是:
电子邮件 1 到电子邮件地址 1 QUA-005 设备即将到期或超出校准范围。请与 QA 联系以更换或将设备送出进行重新校准。
电子邮件 2 到电子邮件地址 2 QUA-007 设备即将到期或超出校准范围。请与 QA 联系以更换或将设备送出进行重新校准。
如果电子邮件地址相同,则输出为:
QUA-005、QUA-007 设备即将到期或超出校准范围。请与 QA 联系以更换或将设备送出进行重新校准。
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,我无法理解
If there is a different email address in each row (multiple rows could have the same email address as well), how do I change the function?。能详细介绍一下吗? -
@Tanaike 如果您查看电子表格,有 2 个不同的电子邮件地址。我想将第 1 列中通过 IF 语句的所有项目与各自的电子邮件地址结合起来,并向他们发送电子邮件。我希望这能解释你的问题。我还想抄送其他电子邮件地址。
-
感谢您的回复。我为我糟糕的英语水平深表歉意。不幸的是,我无法理解
all the items in column 1 that have passed the IF statement。那么你能提供你期望的样本输出值吗?通过这个,我想考虑一下问题和解决方案。 -
感谢您的回复。不幸的是,从您的回复中,我仍然无法理解您的目标。这是由于我的理解力差。我对此深表歉意。当我能正确理解它时,我会想办法。
-
@Tanaike 我添加了这个问题。请看一下