无法在对象中找到函数setFullYear - Google Scripts

时间:2017-11-15 22:39:11

标签: javascript google-sheets

脚本编写新手。这是我的第二个脚本,我基本上修改了一个Google Sample。

我得到的错误: TypeError:在对象中找不到函数setFullYear。 (第22行,文件“代码”)。

脚本似乎完成,因为电子邮件已发送,但我想知道为什么我收到错误,我该怎么做才能纠正它。
我假设脚本不喜欢日期格式。

有问题的代码:
var dateToSend = row[0]; dateToSend = dateToSend.setFullYear(0000);

row[0]是指Google表格中包含日期的单元格。

完整脚本,如果有帮助:

var today = new Date() 
today.setHours(0,0,0,0) 
today = today.setFullYear(0000) // Set year as 0, so recurs every year


var EMAIL_SENT = "EMAIL_SENT";

function sendEmailsByDate() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange('A2:E')
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var dateToSend = row[0];  
    dateToSend = dateToSend.setFullYear(0000); // This is the problematic line 22
    var emailAddress = row[1];                  
    var subject = row[2];                   
    var message = row[3];                     
    var emailSent = row[4];                     
    if ((emailSent != EMAIL_SENT) && (today == dateToSend)) {  
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 5).setValue(EMAIL_SENT);
      SpreadsheetApp.flush();

    }
  }
}

1 个答案:

答案 0 :(得分:0)

您必须使用行[0]数据创建日期对象,以便可以访问其上的setFullYear函数。像这样:

  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var dateToSend = new Date(row[0]);