这个想法是,当用新行(例如客户端ID(更新的谷歌文档向该客户端的经理发送一封信时。在我的文档中,我有列"客户ID"(1列(和"电子邮件"(13列(。这是我正在使用的代码:
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 9 // First row of data to process
var numRows = sheet.getRange(13,9).getValue(); // Number of rows to process is set by a formula
which counts rows COLUMN/ROW
var dataRange = sheet.getRange(startRow, 9, numRows, 1);
var data = dataRange.getValues();
for (var i in data) {
var row = data[i];
var emailAddress = row[13];
var message = 'New client';
var subject = 'Check';
MailApp.sendEmail(emailAddress, subject, message);
但是这个代码不起作用,而且它也不会发送带有更新的电子邮件。我可以更改什么来解决这个问题
我是编程新手,请帮忙。
说明:
根据您的评论和描述,您希望在用户填写特定行时发送电子邮件。
如果是这种情况,您需要一个可安装的onEdit触发器。要设置一个可安装的触发器,你可以在谷歌上搜索,也可以看到这篇文章,但你可以找到相关的资源。
-
当您从
8th
行开始在M列(13th
列(中添加电子邮件时,以下脚本将发送电子邮件。 -
我建议的方法是创建一个复选框,这样当用户勾选该复选框时,就会发送电子邮件。但这取决于你。
解决方案:
function onEditEmail(e){
const ss = e.source;
const ar = e.range;
const shn = "Sheet1"; // put the sheet name of your choice
const as = ss.getActiveSheet();
const row = ar.getRow();
const col = ar.getColumn();
if (as.getName()==shn && row>8 && col == 13){
const emailAddress = ar.getValue();
const message = 'New client';
const subject = 'Check';
MailApp.sendEmail(emailAddress, subject, message);
}
}
只有当您为onEditEmail(e)
创建一个可安装的触发器,并仔细阅读我提供的解释以使其工作时,这才会起作用。