[英]Cannot find function setFullYear in object - Google Scripts
Very new to scripting. 脚本新手。 This is my second script, I basically modified a Google Sample.
这是我的第二个脚本,我基本上修改了一个Google Sample。
Error I'm getting: TypeError: Cannot find function setFullYear in object . 我得到的错误:TypeError:在object中找不到函数setFullYear。 (line 22, file "Code").
(第22行,文件“代码”)。
Script does seems to complete, as emails get sent, but I'd like to know why I'm getting the error, and what can I do to correct it. 随着电子邮件的发送,脚本似乎确实完成了,但是我想知道为什么会收到错误,以及如何纠正该错误。
I'm assuming the script doesn't like the date format. 我假设脚本不喜欢日期格式。
Problematic code: 有问题的代码:
var dateToSend = row[0]; dateToSend = dateToSend.setFullYear(0000);
row[0]
refers to a cell on a Google Sheet with a date in it. row[0]
指的是Google表格中带有日期的单元格。
Full script, if it helps: 完整脚本,如果有帮助的话:
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();
}
}
}
You have to create a date object with the row[0] data so that you can access the setFullYear function on it. 您必须使用row [0]数据创建一个日期对象,以便可以访问其上的setFullYear函数。 Like so:
像这样:
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var dateToSend = new Date(row[0]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.