首页 > 解决方案 > 循环内的 setvalue 命令

问题描述

我正在查看数据以找到今天的日期。当日期与今天的日期匹配时,它将发送一封电子邮件。我正在尝试将其标记为已发送。我尝试了多种不同的技术,但遇到了麻烦。注意最后一行——我试图在工作表中指出邮件已发送——所以当再次检查它时它不会重新发送。

主要问题是在循环中使用 .setvalue 命令

错误:未找到范围

  for (i in data) {
    var row = data[i];
    var row2 = fdata[i];
    var date = new Date();
    var sheetDate = new Date(data[i]);
    Sdate=Utilities.formatDate(date,'GMT+0200','yyyy:MM:dd')
    SsheetDate=Utilities.formatDate(sheetDate,'GMT+0200', 'yyyy:MM:dd')
    Logger.log(Sdate+' =? '+SsheetDate)
    if (Sdate == SsheetDate){
      Logger.log("Yes")
      var emailAddress = "myemail@myemail.com";
      var message = "My Message"; 
      var subject = "\[yes!\]";
      MailApp.sendEmail(emailAddress, subject, "", {htmlBody: message});
      Logger.log('SENT :'+emailAddress+'  '+subject+'  '+message)
    
    \\ This is the line that I am having failure
      sheet.getRange(i).setValue('Notified');
    }    
  }

标签: google-apps-script

解决方案


你需要一个坐标地址,不仅仅是行,还有行和列。

sheet.getRange(1,i).setValue("Sent")

推荐阅读