我正在寻找一种方法来标记是否是从Google工作表发送的电子邮件的单元格。例如,如果发送了电子邮件,则在该行的P列中显示“已发送电子邮件”或类似内容。我对此很陌生,我发现了一些有用的类似问题,但我只是不知道如何设置。我想我需要使用IF命令,但不知道如何或在哪里设置它
function SendStudentEmails() {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Homework Hour").activate();//use name of active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DO NOT DELETE! Parent Email Template").getRange(1, 1).getValue();
var quotaLeft = MailApp.getRemainingDailyQuota();
if((lr-1) > quotaLeft) {
Browser.msgBox("You have " + quotaLeft + " left and you're trying to send" (lr-1) + " emails. Emails were not sent")
} else {
for (var i = 2;i<=lr;i++){
var currentEmail = ss.getRange(i,14).getValue(); // 15 is the email column
var currentStudent = ss.getRange(i, 4).getValue(); // 4 is student name column
var currentMessage = ss.getRange(i, 2).getValue(); // 2 is the message column
var currentMissingAssingment = ss.getRange(i, 9).getValue(); // 9 is the missing assingment column
var massageBody = templateText.replace("<<Student Name>>",currentStudent).replace("<<Message>>",currentMessage).replace("<<Missing Assingment>>",currentMissingAssingment);
var subjectLine = currentStudent +" Has Homework Hour";
if (currentEmail.trim() !== '')// checks if email is not blank
MailApp.sendEmail(currentEmail, currentStudent, massageBody);
}
}
}
我是新手,但我希望这对您有所帮助!听起来好像您想在已发送电子邮件的每行旁边标记,在这种情况下,您已经设置了if / for case来执行此操作(除了您似乎缺少一组大括号)之外,最后进行测试,如下所示。发送电子邮件后,您只需在行的P列中添加任何文本即可。这是代码的该部分,其中添加了将文本添加到列P的部分:
if (currentEmail.trim() !== '')// checks if email is not blank {
MailApp.sendEmail(currentEmail, currentStudent, massageBody);
ss.getRange(i,16).setValue("email sent") // writes text (email sent) into column P (col 16), row i (the current row in the for loop)
}
}
[如果您想更改单元格的背景颜色,也可以使用setBackground("color")
。
这里是一个小例子:
ss.getRange(5, 15).setBackground("green")
-它将在单元格N5中将背景颜色更改为绿色
这是您的代码段中的样子((在MailApp下面,在MailApp完成工作后触发setBackground):
function SendStudentEmails() {
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Homework Hour").activate();
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = ss.getLastRow();
var templateText = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DO NOT DELETE! Parent Email Template").getRange(1, 1).getValue();
var quotaLeft = MailApp.getRemainingDailyQuota();
if ((lastRow - 1) > quotaLeft) {
Browser.msgBox("You have " + quotaLeft + " left and you're trying to send " + (lastRow - 1) + " emails. Emails were not sent")
} else {
for (var i = 2; i <= lastRow; i++) {
var currentEmail = ss.getRange(i, 15).getValue(); // 15 is the email column
var currentStudent = ss.getRange(i, 4).getValue(); // 4 is student name column
var currentMessage = ss.getRange(i, 2).getValue(); // 2 is the message column
var currentMissingAssingment = ss.getRange(i, 9).getValue(); // 9 is the missing assingment column
var massageBody = templateText.replace("<<Student Name>>", currentStudent).replace("<<Message>>", currentMessage).replace("<<Missing Assingment>>", currentMissingAssingment);
var subjectLine = currentStudent + " Has Homework Hour";
if (currentEmail.trim() !== '') { // checks if email is not blank
MailApp.sendEmail(currentEmail, currentStudent, massageBody);
ss.getRange(i, 15).setBackground("green") // change cell background to green
}
}
}
}