我正在使用这个简单的邮件合并教程来帮助我创建一个邮件合并,以便向学生和他们的家长发送他们完成的社区服务时间的摘要。他们的电子邮件地址在谷歌表格文档中。该脚本将一直工作,直到遇到空白单元格。然后它给了我一个错误,说"无效的电子邮件:未定义",并引用了脚本中使用发送电子邮件命令的行。
我已经在电子表格本身中临时解决了这个问题,让它在任何空白单元格中插入一个虚拟的电子邮件,但我只想把它写进脚本中以忽略空白单元格。
完整的代码在上面的链接。我修改了代码,从表单中的三列而不是一列中提取电子邮件地址。关键位是:
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataSheet = ss.getSheets()[0];
var dataRange = dataSheet.getRange(5, 1, dataSheet.getMaxRows() - 1, 7);
var templateSheet = ss.getSheets()[1];
var emailTemplate = templateSheet.getRange("B7").getValue();
// Create one JavaScript object per row of data.
objects = getRowsData(dataSheet, dataRange);
// For every row object, create a personalized email from a template and send
// it to the appropriate person.
for (var i = 0; i < objects.length; ++i) {
// Get a row object
var rowData = objects[i];
// Generate a personalized email.
// Given a template string, replace markers (for instance ${"First Name"}) with
// the corresponding value in a row object (for instance rowData.firstName).
var emailText = fillInTemplateFromObject(emailTemplate, rowData);
var emailSubject = templateSheet.getRange("B6").getValue();
MailApp.sendEmail(rowData.studentEmail, emailSubject, emailText);
MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
MailApp.sendEmail(rowData.parentbEmail, emailSubject, emailText);
}
我需要添加什么来跳过parentaEmail和parentbEmail列中的空白单元格?
有许多方法可以解决您的问题,但一般来说,您只需要一个条件语句,该语句表示'如果单元格不为空,则执行sendMail函数'。
if (rowData.parentaEmail != '') {
MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
}
好了,我已经让它工作了。谢谢吉尔给我指明了正确的道路。下面是最终的工作:
if (rowData.parentaEmail != null) {
MailApp.sendEmail(rowData.parentaEmail, emailSubject, emailText);
}
然后再做同样的事情但是对于parentbEmail