如何获取Google Apps脚本中特定值的检查列?

Nes*_*est 2 javascript google-sheets google-apps-script

我有一个电子表格,可以手动更新名称。我设置了一个触发器,只要电子表格被编辑,它就会激活该功能。我希望函数检查名称“ John”的范围D1:D500。如果单元格包含该值,则应发送电子邮件。我已经两年没有写代码了,所以我很生锈。我不太确定自己在这里做错了什么。我认为弄乱了阵列。

function CheckMail() {
  var mailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("October").getRange("D1:D500"); 
  var data = mailRange.getValue();
  var dataLength = data.length;
  for(var i=0;i<dataLength;i++){
      if(data[i][1] == "John") {
         var emailAddress = "myemail@gmail.com"
         var message = 'New parcel for ' + data[i][1];
         var subject = 'New parcel';
         MailApp.sendEmail(emailAddress, subject, message);
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

Sou*_*ria 5

罗斯在评论中分享了什么-用getValues(复数)而不是getValue+

你也并不需要 data[i][1] (二维数组)为你获取数据的一列:)

尝试这个 -

function CheckMail() {
  var mailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("October").getRange("D1:D500"); 
  var data = mailRange.getValues();
  var dataLength = data.length;
  for(var i=0;i<dataLength;i++){
    if(data[i] == "John") {
      Logger.log("Got John")
    }
  }
}

Run Code Online (Sandbox Code Playgroud)

您可以根据需要替换Logger并运行任何其他代码。希望这可以帮助!

编辑:删除我的理由,为什么data[i][1]可能行不通