读取范围值以正常工作的问题

时间:2016-12-08 09:02:52

标签: google-apps-script

我正在处理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值时,记录器不会返回任何内容。

我很感激这个帮助。 感谢

1 个答案:

答案 0 :(得分:1)

您的代码行不好

var nameOfEditedItem = getRange(rowOfEditedCard,3).getValue();

您忘记了工作表对象,因此您没有可以使用的范围,因此您没有值。你可能想要

var nameOfEditedItem = sheet.getRange(rowOfEditedCard,3).getValue();