我正在处理onEdit事件,该事件会检测特定列中所做的更改。如果更改是特定值,我想发送电子邮件通知。
到目前为止,我得到了这个:
function sendNotification(e)
{
// static values
var sheetNameToWatch = "Category";
var orderStatusColToWatch = 13;
var processingStatusColToWatch = 52;
var valueToWatch1 = "In Game";
var columnOfEditedOrder = 3;
//dynamic values
var ss = e.source;
var range = e.range;
var sheet = e.range.getSheet(); //works
var sheetName = sheet.getName(); //works
var rowOfEditedOrder = range.getRow(); //works
var nameOfEditedItem = getRange(rowOfEditedCard,3).getValue();
Logger.log(nameOfEditedCard);
if (sheetName == sheetNameToWatch && range.getColumn() ==
processingStatusColToWatch)
{
if (value == valueToWatch1)
{
MailApp.sendEmail("everyday@normalemail.com", "Example topic", "Value for item "+nameOfEditedItem+" has been updated to "+valueToWatch1+".");
}
}
else Logger.log("Something went wrong");
}
现在,我遇到的问题是变量nameOfEditedItem未正确设置为正确的值,即使rowOfEditedOrder返回正确的值。每当我使用记录器为我记录nameOfEditedItem值时,记录器不会返回任何内容。
我很感激这个帮助。 感谢
答案 0 :(得分:1)
您的代码行不好
var nameOfEditedItem = getRange(rowOfEditedCard,3).getValue();
您忘记了工作表对象,因此您没有可以使用的范围,因此您没有值。你可能想要
var nameOfEditedItem = sheet.getRange(rowOfEditedCard,3).getValue();