为什么我的电子邮件已发送字段写入第 20 行而不是第 2 行

Why is my emailSent field writing to row 20 instead of row 2?

本文关键字:电子邮件 我的 字段 为什么      更新时间:2023-09-26

我的代码似乎工作正常,除了第 22 行,该行将"emailSent"值写入脚本运行的 Google 电子表格的第 20 行,而不是该电子表格的第 2 行,这是唯一包含数据的行。有什么想法吗?

function sendEmails2() {
  //trying to adopt code from this tutorial https://developers.google.com/apps-script/articles/sending_emails
  //-believe there is an issue with where I am declaring getRange to work-
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;  // First row of data to process
  var lastRow = 40;   // Last row of data to process
  // Fetch the range of cells A1:B10002
  var dataRange = sheet.getRange(startRow, 1, lastRow, 10)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  var i = data.length; 
  for (i in data) {
    var row = data[i];
    var emailAddress = row[7];  // raised an error at one point 
    var isEmailSent = row[9];     //
    var partTimeApproved = row[0]
    if (partTimeApproved != '') { // prevents sending emails to non-approved rows. for some reason = 'Y' doesn't work but !='' does //... or does it
    if (isEmailSent == '') {  // Prevents sending duplicates and sending emails to non-approved rows
      var subject = "Email Subject Test";
      var message = "Email body test";    // Standard string
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 10).setValue('emailSent'); //this didn't work: -replacing startRow + i with row-
      // Make sure the cell is updated right away in case the script is interrupted
      SpreadsheetApp.flush();
    }
  }
  }
}

明白,虽然我采用的代码使用

getrange(startRow + i, 10).setValue('emailSent'); 

但是,我不明白它如何找到第 20 行,并且不确定如何继续修复它。

First

var i = data.length; <-- makes no sense
for (i in data) {    <-- since you override i here

而且我不知道数据到底是什么。我假设它是一个带有数字的字符串数组。又名['0','1']

因此,当您期望 2 而得到 20 时,听起来就像您在数字中添加一个字符串

> 2 + "0"
"20"

将其转换为数字。

> 2 + parseInt("0", 10)
2

所以在代码中:

getrange(startRow + parseInt(i, 10), 10).setValue('emailSent'); 
相关文章: