下面是一个代码,用于发送电子邮件,其中包含根据电子表格中的数据创建的提醒。
if(ce2 != 'no value'){
行Syntax error
与以下两个if
语句一样if(al2 != 'no value'){
和if(cc2 != 'no value'){
;但是,第一个if
语句if(ce2 != 'no value' || al2 != 'no value' || cc2 != 'no value'){
没有。我找不到错误。我确定这是一些我没有点击过的傻瓜。
我尝试使用正确的if
语句代替有错误的语句,但它仍然有错误。我玩过+
的定位,看看是否有任何影响。如果if
行及其对应的}
被注释掉,则该函数有效。我还将'empty'
更改为'no value'
,如果这是“保留”字或其他类似的话。
function emailAlerts() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('EmailAlerts');
var sub = s.getRange('F5').getValue();
var nm2 = s.getRange('C11').getValue();
var em2 = s.getRange('D11').getValue();
var ce2 = s.getRange('E11').getValue();
var al2 = s.getRange('F11').getValue();
var cc2 = s.getRange('G11').getValue();
if(ce2 != 'no value' || al2 != 'no value' || cc2 != 'no value'){
MailApp.sendEmail(em2, sub, '',{
htmlBody: 'Good morning '+nm2+
',<br><br><b>Your alerts:</b><br><br>'+
if(ce2 != 'no value'){
'<b>CONTRACTS EXPIRING</b><br>'+
ce2+'<br><br>'+
}
if(al2 != 'no value'){
'<b>AUDIO LINES EXPIRING</b><br>'+
al2+'<br><br>'+
}
if(cc2 != 'no value'){
'<b>COLD CALLS TO FOLLOW UP</b><br>'+
cc2+'<br><br>'+
}
'Kind regards,<br>XXX'
});
}
}
答案 0 :(得分:1)
问题是因为嵌套的if语句有代码,但没有以冒号结尾的表达式。您应该创建一个包含要发送的消息的字符串,使用ifs追加,然后发送电子邮件。类似的东西:
var htmlBodyMessage = 'Good morning' + nm2;
if(ce2 != 'no value')
{
htmlBodyMessage += 'CONTRACTS EXPIRING' + ce2;
}
if(al2 != 'no value')
{
htmlBodyMessage += 'AUDIO LINES EXPIRING'+ al2;
}
if(cc2 != 'no value')
{
htmlBodyMessage += 'COLD CALLS TO FOLLOW UP</b><br>'+ cc2;
}
MailApp.sendEmail(em2, sub, '', { htmlBody: htmlBodyMessage });