我有一个电子表格(这里-> https://docs.google.com/spreadsheets/d/1U0A8PmKYxkXn8SrfKOo6XsJb-XxkJNYZqd0QIKkFsP4/edit?usp=sharing),该电子表格从表单收集数据并执行多个if函数以对答案进行分类。 我需要做的是根据单元格值(表格“代码扩展数据+最小说明填充”,最后一栏“提醒最小描述”)发送后续电子邮件(提醒)。为此,我想我必须遍历该列,找到一个匹配项(“保持发送提醒”,“停止发送提醒”)并发送邮件。 但是最终发生的是代码发出了73条后续消息。我不知道73,如果我只有2行带有“继续发送电子邮件”。
function sendEmail() {
var ss = SpreadsheetApp.openById("1lzc7-WRxEBQc5D_SR0F-d-
9PhQjmVk37UOgBQTGw3_Q");
var sh = ss.getSheetByName('Code extension data + Minimum desc. fill');
var lastRow = sh.getLastRow();
var data = sh.getRange(1,28,lastRow,28).getValues();
for (i=0; i < data.length;i++){
var num = parseInt(data[i]);
if (num = "Keep sending reminder") {
var emailAddress = "email@email.com";
var message = "test body";
var subject = "test subject";
MailApp.sendEmail({
name: "Your Name",
to: emailAddress,
subject: subject,
htmlBody: message
});
}
}
}
答案 0 :(得分:1)
您的if语句只有一个等号,请使用==或===更好。
答案 1 :(得分:1)
您的if
语句正在将number
和string
(“保持发送提醒”)进行比较,该结果永远不会被评估为true。无需使用parseInt
来完成您想做的事情。另外,您正在遍历string[][]
,因此必须使用data[i][columnIndex]
来访问希望在其中找到“继续发送提醒”的列。
function sendEmail() {
var ss = SpreadsheetApp.openById("1lzc7-WRxEBQc5D_SR0F-d-9PhQjmVk37UOgBQTGw3_Q");
var sh = ss.getSheetByName('Code extension data + Minimum desc. fill');
var lastRow = sh.getLastRow();
var data = sh.getRange(1,28,lastRow,28).getValues();
for (var i=0; i < data.length; i++) {
//var num = parseInt(data[i]);
if (data[i][27] === "Keep sending reminder") {
var emailAddress = "email@email.com";
var message = "test body";
var subject = "test subject";
MailApp.sendEmail({
name: "Your Name",
to: emailAddress,
subject: subject,
htmlBody: message
});
}
}
}