我的脚本的目标是通过电子邮件将单元格值发送给我,如果该单元格不包含文本“ Not Ready”。
在单元格区域I2:I8中,除I2之外的每个单元格都包含文本“未就绪”。因此,应该将I2中的信息通过电子邮件发送给我。
运行脚本时,我意外地通过电子邮件发送了范围内其他单元格的内容。此单元格与范围中的其他单元格相同。
我的直觉是该单元格区域包含一个IF公式,而不是可能是原因的文本字符串。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),
options = [
{name:"Scan and Email", functionName:"readSheet"},
];
ss.addMenu("Email", options);
function readSheet() {
var ss =
SpreadsheetApp.openById("GOOGLE SHEET");
var sheet = ss.getSheetByName("formResponses")
var range = sheet.getRange("I2:I8")
var data = range.getValue();
if (data != "Not Ready")
MailApp.sendEmail("MY EMAIL ADDRESS", "Test Update", "Action:"
+data+ ".");
}
}
答案 0 :(得分:2)
范围包含多个单元格,因此range.getValues()
。重新调谐的数据是一个数组。数组永远不会等于字符串。替换-
var data = range.getValue();
if (data != "Not Ready")
MailApp.sendEmail("MY EMAIL ADDRESS", "Test Update", "Action:" +data+ ".");
}
与-
var data = range.getValues();
var ready = data.filter(function(el) {
return el[0] != 'Not Ready';
});
if (!ready.length) return;
MailApp.sendEmail('MY EMAIL ADDRESS', 'Test Update', 'Action:' + ready[0][0] + '.');