如果不等于'字符串'有语法错误我找不到

时间:2017-03-13 22:18:34

标签: if-statement google-apps-script syntax-error

下面是一个代码,用于发送电子邮件,其中包含根据电子表格中的数据创建的提醒。

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'
      });
    }
  }

1 个答案:

答案 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 });