Reputation: 437
I am trying to get values from a google sheet sent to email and a value in the cell updated. This works.
However, when, I ran the code, again, it picks from the initial row where the value has been updated to 3 (to avoid duplication of email).
I want it to ignore the previously sent row and only pick What row where column 41 is not set to 3. What could I be doing wrong here?
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
for (var i = 1; i < data.length; ++i) {
var rowData = data[i];
var sender = rowData[1];
var name = rowData[2];
var client = rowData[3];
var sdate = rowData[4];
var edate = rowData[5];
var loe = rowData[7];
var emailSent = rowData[41];
var emailAddress = '[email protected]';
var message = 'Email:' + sender + ',\n\n' + name + ' ' + client + ',\n\n' + sdate + ',\n\n' + edate + ',\n\n' + loe;
var subject = 'Alert- New Project';
if (emailSent !== '3' && MailApp.getRemainingDailyQuota()>0 && emailAddress && subject && message) {
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(i+1, 41).setValue('3');
}
}
}
Upvotes: 0
Views: 107
Reputation: 64092
Try this:
row[41] is column 42;
column indexes start at one
array indexes start at zero
function sendEmails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
for (var i = 1; i < data.length; ++i) {//this skips the first row in the data array which is often a header.
var rowData = data[i];
var sender = rowData[1];//column2
var name = rowData[2];//column3
var client = rowData[3];//column4
var sdate = rowData[4];//column5
var edate = rowData[5];//column6
var loe = rowData[7];//column8
var emailSent = rowData[40];//Changed this from 41 to 40.Array index 41 is column 42
var emailAddress = '[email protected]';
var message = 'Email:' + sender + ',\n\n' + name + ' ' + client + ',\n\n' + sdate + ',\n\n' + edate + ',\n\n' + loe;
var subject = 'Alert- New Project';
if (emailSent !== '3' && MailApp.getRemainingDailyQuota()>0 && emailAddress && subject && message) {
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(i+1, 41).setValue('3');//the 41 is a column index not an array index
}
}
}
Upvotes: 1