我已经做了很多搜索,但我找不到我需要的东西。我要做的是以下内容:
我有一个Google电子表格,而A列包含特定值(状态)的下拉列表。当该值设置为“已完成”时,我想要发送电子邮件。
我有发送电子邮件部分,但是如果它已经设置为“已完成”,我会更改行中的其他内容,然后它会发送另一封电子邮件。我可以在IF语句中静态指定一列(例如; A11),但它必须是A列中每个活动行的动态。
到目前为止,这是我的代码。提前谢谢。
function EmailOnCompletion(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Form Responses 1");
var row = s.getActiveRange().getRow();
var status = s.getRange(row, 1).getValue();
var hostname = s.getRange(row, 7).getValue();
var to = s.getRange(row, 5).getValue();
var subject = 'subject';
var html = 'body';
if( status == 'Completed') {
GmailApp.sendEmail(to, subject, html, {htmlBody: html, from: "email@address.com"});
}
}
答案 0 :(得分:0)
您已经使用可以使用的onEdit触发器传递事件对象 使用它也更安全,因为可能存在延迟并且当前活动的单元可能已经改变。
如果状态单元格在A列中,请使用
if (e.value === "Completed" && e.range.getColumn() === 1)
检查该行的状态列是否已更改为"Completed"
。
您还可以使用事件对象推断收件人保持一致。