包括脚本的附加条件

时间:2019-07-25 09:32:33

标签: google-apps-script

我有一个脚本,如果在Google电子表格中添加了新行,该脚本会发送邮件。我想添加第二个条件,以使脚本能够正常工作。

现在有条件if (EmailSent != "gesendet"),但我希望有其他条件,即脚本检查当前行中的另一个单元格(如果至少是一个或多个邮件地址)。

function sendEmail() {
  var ActiveSheet = SpreadsheetApp.getActive().getSheetByName('xxx')
  var StartRow = 3;
  var RowRange = ActiveSheet.getLastRow() - StartRow + 1;
  var WholeRange = ActiveSheet.getRange(StartRow,1,RowRange,33);//Added a new column for recipient email address
  var AllValues = WholeRange.getValues();
  for (var i=0;i<AllValues.length;i++) {
    var CurrentRow = AllValues[i];
    var Subject = "Neu: " + CurrentRow[7] + " für Ressort " + CurrentRow[5]  + " - "+ CurrentRow[6];
    var message = "<p><b>Ressort: </b>" + CurrentRow[5] + "</p>" + "<p><b>Textart: </b>" + CurrentRow[7] + "</p>" + "<p><b>Domain: </b>" + CurrentRow[6] + "</p>" + "<p><b>Thema: </b>" + CurrentRow[8] + "</p>" + "<p><b>fertig bis: </b>" + CurrentRow[2] + "</p>";
    var EmailSent = CurrentRow[0];
    var SendTo = (CurrentRow[32])?CurrentRow[32]:"aaa@bbb.com" + "," + "xxx@yyy.com";//conditional (ternary) operator.  If CurrentRow[32] is there then use it otherwise use your default.
    if (EmailSent != "gesendet") {
      var setRow = parseInt(i) + StartRow;
      ActiveSheet.getRange(setRow, 1).setValue("gesendet");
      MailApp.sendEmail({to: SendTo,cc: "",subject: Subject,htmlBody: message});
    }
  }
}

如果脚本在单元格中查找“ @”,也许就足够了。仅当if (EmailSent != "gesendet")且单元格中的“ @”脚本才起作用。如果没有“ @”,则脚本不起作用。

1 个答案:

答案 0 :(得分:1)

如果您要检查CurrentRow[32]的电子邮件地址,可以将if语句更改为:

if (EmailSent != "gesendet" && CurrentRow[32].match('@') != null ) {

这会查看CurrentRow[32]中的文本,并检查其中是否包含'@'。