当列中的一个单元格包含数据时发送电子邮件,但当它被删除时不发送
Send an email when one cell in a column contains data, but not when it's deleted
我希望在向 K 列任意位置的单元格中添加内容时发送电子邮件,但在清除该单元格时不发送电子邮件。这可能吗?这是我到目前为止所拥有的。当我编辑单元格 K1 时电子邮件发送正常(它仅限于这个用于测试的单个单元格)但是当我清除这个单元格时它也会发送一封电子邮件。感谢您的任何建议,如您所见,我主要只是在猜测。
function sendEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet4 = ss.getSheetByName('Copy');
var emailAddress = sheet4.getRange(2,12).getValue();
var subject = sheet4.getRange(2,13).getValue();
var message = sheet4.getRangeList(['G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8'])
.getRanges()
.map(range => range.getDisplayValue())
.join('\n');
MailApp.sendEmail(emailAddress, subject, message);
}
function onEdit(e) {
if(e.range.rowStart === 1 && e.range.columnStart === 11) {
var sh = e.source.getActiveSheet();
if(sh.getName() === 'Copy') {
sendEmail()
}
}
}
也许添加到 "if" 中,如果该值不同于空值,它将不会执行代码
不确定哪个行或范围属于 K,所以我将其命名为“Range_in_K”
if(e.range.rowStart === 1 && e.range.columnStart === 11 && Range_in_K != "")
借用 Karla 的回答,通常当您删除单个值时,事件对象 (e
) 缺少 value
键。因此,
尝试:
function onEdit(e) {
if (e.source.getActiveSheet().getName() === `Copy`) {
if (e.range.rowStart === 1 && e.range.columnStart === 11) {
if (`value` in e) sendEmail()
}
}
}
我希望在向 K 列任意位置的单元格中添加内容时发送电子邮件,但在清除该单元格时不发送电子邮件。这可能吗?这是我到目前为止所拥有的。当我编辑单元格 K1 时电子邮件发送正常(它仅限于这个用于测试的单个单元格)但是当我清除这个单元格时它也会发送一封电子邮件。感谢您的任何建议,如您所见,我主要只是在猜测。
function sendEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet4 = ss.getSheetByName('Copy');
var emailAddress = sheet4.getRange(2,12).getValue();
var subject = sheet4.getRange(2,13).getValue();
var message = sheet4.getRangeList(['G1', 'G2', 'G3', 'G4', 'G5', 'G6', 'G7', 'G8'])
.getRanges()
.map(range => range.getDisplayValue())
.join('\n');
MailApp.sendEmail(emailAddress, subject, message);
}
function onEdit(e) {
if(e.range.rowStart === 1 && e.range.columnStart === 11) {
var sh = e.source.getActiveSheet();
if(sh.getName() === 'Copy') {
sendEmail()
}
}
}
也许添加到 "if" 中,如果该值不同于空值,它将不会执行代码
不确定哪个行或范围属于 K,所以我将其命名为“Range_in_K”
if(e.range.rowStart === 1 && e.range.columnStart === 11 && Range_in_K != "")
借用 Karla 的回答,通常当您删除单个值时,事件对象 (e
) 缺少 value
键。因此,
尝试:
function onEdit(e) {
if (e.source.getActiveSheet().getName() === `Copy`) {
if (e.range.rowStart === 1 && e.range.columnStart === 11) {
if (`value` in e) sendEmail()
}
}
}