2016-06-07 43 views
0

我已经编写了一个使用Google工作表发送电子邮件的脚本。一切工作正常,除了标记第三列成功。第一个成功的电子邮件标记为EMAIL_SENT,但没有更改以下单元格。任何想法,为什么这不起作用?运行谷歌脚本后将每行标记为成功

for (row = 1; row < emailLength && confirmation == ui.Button.YES; row++){ 

    var customerEmail = data[row][0]; // Customer's email in first column 

    var customerName = data[row][1]; // Customer's name in second column 

    var EMAIL_SENT = 'Success'; 

    if(customerName != ''){ 

     var body = '<font face="avenir" size="3"> Hi '+ customerName + ',<br><br>' 
     + paragraphOne + '<br><br>' 
     + paragraphTwo + '<br><br>' 
     + paragraphThree + '<br><br>' 
     + signature; 
    } 


    GmailApp.sendEmail(customerEmail, emailSubject, "", {htmlBody: body}); 

    sheet.getRange(row, 3).setValue(EMAIL_SENT); 
} 
}; 
+0

我不能肯定与你共享的代码,但我第一次尝试将是片状物体超出范围。当你执行你的代码时,你在javascript控制台上遇到任何错误? – Bardo

+1

行索引之间似乎存在不匹配。行= 1是工作表的第一行。但数据[1] [0]指的是你处理的第二行数据,因为JavaScript索引从0开始。 – 2016-06-07 14:55:09

+0

@sandwich是有意识的,因为有标题。虽然好想法! – tonestrike

回答

1

@bardo是在正确的轨道上。这个问题与getRange有关。通过代码最初的方式,getRange(row,3)从第三列和第一行开始。我希望它在第二排开始。数据[行] [X]是很好的,因为这些都是索引,但getRange需要的是getRange(row + 1 , 3)

​​