我有多个行和列,这些列和列每天都会更新,并且我希望触发电子邮件以从同一工作表的另一列中提取邮件ID。
例如,我在C列中存在许多电子邮件ID(由于每天都会添加数据,因此无法提及特定范围),并且当H列的值标记为“是”时,则来自相应列中的邮件ID必须填写C列,并应向该ID触发电子邮件。我尝试了多个脚本,但无法正常工作。
答案 0 :(得分:1)
function onEdit(e) {
if(e.range.getSheet().getName()!='Sheet Name Used in this Operation') return;
if(e.range.columnStart==8 && e.value=="YES") {
//Send email
}
}
我不确定,但我认为您可能需要创建一个可安装的触发器来发送电子邮件。
答案 1 :(得分:1)
将以下代码复制并粘贴到工作表的脚本编辑器中(并进行必要的修改):
function sendEmail(dest, data) {
var messageBody = 'Hello, there has been a new release:\n\n' + JSON.stringify(data);
GmailApp.sendEmail(dest, 'Automated email from sheet', messageBody);
}
function onEditTrigger(e) {
var range = e.range;
if (range.columnStart == 8 && e.value == 'YES') {
// Prepare the email
var row = range.getSheet().getRange(e.range.rowStart, 1, 1, 8).getValues()[0];
var headers = range.getSheet().getRange(1, 1, 1, 8).getValues()[0];
var dest = row[1];
var data = {};
for (var i=0; i<8; i++) {
data[headers[i]] = row[i];
}
sendEmail(dest, data);
}
}
该代码将获取已修改行的前8列,并将它们连同标头一起以JSON格式发送到B列中指定的电子邮件中。您可以看到我用于测试here的电子表格。我收到的电子邮件如下所示:
现在,每次修改工作表时,上面的代码将运行,并在适当的情况下发送消息。