我对此很陌生,我的工作是在Google工作表中包含FB的所有潜在客户信息,而我正在尝试提供一个功能(onEdit),该功能将根据以下信息向潜在客户发送电子邮件一个单元格的数据。例如,当A2包含“跟进”时,它将向D2中的地址发送一封电子邮件,并且正文文本来自J2(“跟进”数据验证的罐头响应)。现在,它适用于第2行,但是在其他任何行中输入“ Follow Up”时,它都会向列表中的每一行发送一封电子邮件。例如,在A29中触发事件时,它将J列中的正文发送到列表中的每封电子邮件。我正在尝试使事件一次仅发送一封电子邮件(基于符合验证要求的活动单元)。
我已尽力查看此处的其他文章,以使用for循环将这些代码拼凑在一起,以检查是否有新行(新行始终添加到工作表中)。这三个if语句可能很草率,但是我不知道如何将其清理为一个奇异的if语句。我正在考虑添加一列,该列指出是否已发送电子邮件,并更新for循环或if语句以不向那些行发送电子邮件。
var sheetname = "Prometheus";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
var ac = sheet.getActiveCell();
var endRow = sheet.getLastRow();
var startRow = 1;
for (var i = endRow; i >= startRow; i--) {
var rangeToCheck = sheet.getRange(i, 1, 1, 21);
if (ac.getValue() == "Appt. Set (appointment is setup)") {
data = rangeToCheck.getValues();
Logger.log(data)
MailApp.sendEmail({
to: data[0][4],
subject: "Appt. Confirmation",
body: data[0][10]
}); break;
} else if (ac.getValue() == "Lead") {
data = rangeToCheck.getValues();
Logger.log(data)
MailApp.sendEmail({
to: data[0][4],
subject: "Welcome",
body: data[0][11]
}); break;
} else if (ac.getValue() == "Follow Up") {
data = rangeToCheck.getValues();
Logger.log(data)
MailApp.sendEmail({
to: data[0][4],
subject: "Follow Up",
body: data[0][12]
});
}
}
}
我希望我的活动单元格满足if语句中的条件时,只会在同一行中将一封电子邮件发送给联系信息。现在,当一行中满足条件时,它将向工作表中的每个人发送电子邮件。
答案 0 :(得分:0)
如果我的理解是正确的,那么该修改如何?在此修改中,使用了可以通过OnEdit事件触发器检索的事件对象。请认为这只是几个答案之一。
在使用此脚本之前,请为修改后的脚本的RunByOnEdit()
安装OnEdit事件触发器。
RunByOnEdit
设置为“选择要运行的功能”。function RunByOnEdit(e) {
var sheetname = "Prometheus";
var sheet = e.range.getSheet();
var range = e.range;
if (sheet.getSheetName() == sheetname && range.columnStart == 2) {
var data = sheet.getRange(range.getRow(), 1, 1, 21).getValues()[0];
var object = {
to: data[4] // Column "E"
};
if (e.value == "Appt. Set (appointment is setup)") {
object.subject = "Appt. Confirmation";
object.body = data[10]; // Column "K"
} else if (e.value == "Lead") {
object.subject = "Welcome";
object.body = data[11]; // Column "L"
} else if (e.value == "Follow Up") {
object.subject = "Follow Up";
object.body = data[12]; // Column "M"
}
if (object.subject) MailApp.sendEmail(object);
}
}
如果我误解了您的问题,而这不是您想要的结果,我深表歉意。那时,为了正确了解您的情况,您可以提供样本电子表格吗?当然,请删除您的个人信息。