我們希望在導師每次填寫表格時向他們發送一封包含學生資訊的電子郵件。當導師為學生填寫表格時,導師的電子郵件會填充在該學生的 E 列中。然后,F 列更改為“否”。我們只想向 F 列中“否”的導師發送電子郵件。
目前,我們的功能服務于這個目的。但是,我們還希望在發送電子郵件后,將 colF 中的“否”更改為“是”,以防止以后發送電子郵件。我們嘗試使用 forloop,但我們對編碼不太了解,它根本不會將“否”更改為“是”。提前感謝您的幫助!
function newmatchEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1=ss.getSheetByName('Active Student List');
var data=sheet1.getDataRange().getValues();
data.forEach(function(row,col){
if (col == '') return;
if (row[0] == '') return; //If ColA is empty skip
if (row[4] == '') return; //If ColE is empty skip
if (row[5] == "Yes") return; //If ColF is "Yes" skip
if (row[5] == "") return; //If ColF is empty skip
if (row[5] == "No") // we want ONLY tutors that have "No" in column F to receive an email
var studentinfo = row[0];
var studentname = row[2];
var studentemail = row[3];
var tutoremail = row[4];
var subject = "Student Opening Request";
var messagetemplate = sheet1.getRange(2,8).getValue();
message=messagetemplate.replace("<studentinfo>",studentinfo).replace("<studentname>",studentname).replace("<studentemail>",studentemail);
MailApp.sendEmail(tutoremail, subject, message);
var ws = SpreadsheetApp.getActiveSpreadsheet();
var sh=ws.getSheetByName('Active Student List');
var values = sh.getRange("F2:F").getValues();
for(var i in values){
if (newvalues[i][0] == "No"){
values.setValue([i][0]=="Yes");}} // something's not quite right here
})
}
作業表鏈接 影像
uj5u.com熱心網友回復:
在您的情況下,如何進行以下修改?
修改后的腳本:
function newmatchEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName('Active Student List');
// var data = sheet1.getDataRange().getValues();
var data = sheet1.getRange("A2:F" sheet1.getLastRow()).getValues();
var rangeList = data.map(function (row, i) {
if (row[0] == '' || row[4] == '' || row[5] == "" || row[5] == "Yes") return "";
var studentinfo = row[0];
var studentname = row[2];
var studentemail = row[3];
var tutoremail = row[4];
var subject = "Student Opening Request";
var messagetemplate = sheet1.getRange(2, 8).getValue();
message = messagetemplate.replace("<studentinfo>", studentinfo).replace("<studentname>", studentname).replace("<studentemail>", studentemail);
MailApp.sendEmail(tutoremail, subject, message);
return "F" (i 2);
}).filter(String);
if (rangeList.length == 0) return;
sheet1.getRangeList(rangeList).setValue("Yes");
}
- 在此修改中,發送電子郵件時,
Yes將其放在同一行的“F”列。- 在
setValue回圈中使用時,處理成本變高。所以我使用 RangeList 的值。
- 在
參考:
- 地圖()
- 類 RangeList 的 setValue(value)
uj5u.com熱心網友回復:
嘿,既然你已經跳過了“是”和“”的行,你可以只使用 .setValue()。
MailApp.sendEmail(tutoremail, subject, message);
data.getRange(col 1, 6).setValue("Yes");
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/443763.html
上一篇:如何將值完全插入另一個單元格
