我有一个投资资产的价格跟踪器,它已经使用 IMPORTXML 从网络自动更新。我在本工作簿中设置了另一个工作表,其中包括销售目标,并从价格跟踪表中提取当前价格。如果价格超过销售目标,我希望电子表格通过电子邮件发送给我,然后将保留列标记为“已发送”,以防止触发器重复发送电子邮件。
我已经快要让它工作了,但我一定错过了 Apps 脚本数组的一些基本内容。当我使用 console.log 从循环内记录时,我可以看到共有 4 个单元格被标记为“已发送”,而实际上只有其中一个单元格应该被标记为“已发送”。你能告诉我我做错了什么吗?
function sendEmail() {
var sheet = SpreadsheetApp.getActive().getSheetByName("Sell Targets");
var SellTargetRange = sheet.getRange("W3:W");
var SellTarget = SellTargetRange.getValues();
var PriceRange = sheet.getRange("D3:D");
var Price = PriceRange.getValues();
var EmailSentRange = sheet.getRange("X3:X");
var EmailSent = EmailSentRange.getValues();
var lastRow = sheet.getLastRow();
for (var i = 0; i < (lastRow-1); i++) {
if ((SellTarget[i] < Price[i]) && (EmailSent[i] != "SENT")) {
//var emailAddress = "[email protected]";
//var subject = "subject";
//var message = "sell";
//MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange("X" + (i+3)).setValue("SENT");
console.log(EmailSent[i])
console.log(Price[i])
console.log(SellTarget[i])
}
}
}