我正在编写一个google电子表格的脚本,该脚本应检查特定单元格的值是否为“是”。如果是这样,它应该结束。如果没有,它应该发送一封包含其他几个单元格内容的电子邮件到指定的地址,并向指定的单元格写“是”。但是,代码中的if条件似乎总是评估为true,即使它应该评估为false。该脚本将“是”写入指定的单元格并发送电子邮件。但是,虽然电子邮件包含指定单元格的内容,但它们都是乱序的。这是脚本:
function sendNotification() {
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(2,1,1,6);
var data = dataRange.getValues();
var dateSubmitted = data[0];
var dateDue = data[1];
var url = data[2];
var currentText = data[3];
var newText = data[4];
var emailSent = data[5];
var test = 'Yes';
var emailAddress = 'harland.westgate@gmail.com';
var message = 'On ' + dateSubmitted + ' a colleague requested that ' + url + ' be changed to replace the text ' + currentText + ' with ' + newText + '. This change should be completed by ' + dateDue;
var subject = 'A website change has been requested';
if (emailSent!=test) { // Prevents sending duplicates
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(2,6).setValue(test);
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
}
}
相关单元格(抱歉,试图截图但代表太低):
A2:2014年1月11日 B2:2014年1月17日 C2:www.google.com D2:Lorem ipsum E2:Dolor坐下来 F2:是的
这是它转储到电子邮件正文中的内容:
2014年1月11日星期六00:00:00 GMT-0500(EST),2014年1月17日星期五00:00:00 GMT-0500(EST),www.google.com,Lorem ipsum,Dolor sit amit,Yes一位同事要求更改undefined以将undefined替换为undefined。此更改应由未定义的
完成我进行了广泛的搜索,但没有找到任何行为的解释。我不认为脚本无法读取单元格区域的值,因为电子邮件正文包含这些值(而不是我期望它们的位置)。然后,在我期待这些值的地方,它会以“未定义”的形式出现。
答案 0 :(得分:0)
记住getValues()
会返回一个二维数组值。
尝试:
...
var dateSubmitted = data[0][0];
var dateDue = data[0][1];
var url = data[0][2];
...