我整个上午一直在网上搜索,但一直无法找到我想做的事情。我在这里找到了类似的帖子,但无法弄清楚如何根据我的需要调整它。
我是一名教师,我正在考虑如何在我们班级的孩子成绩低于C级时使用Google表格自动给父母发邮件。我能够快速找到脚本以让Sheets发送电子邮件,并且想知道是否可以编辑该脚本以仅在特定单元格中的值低于70时才发送电子邮件。
这是我找到的脚本。我将主题行编辑为“数学成绩”(这很容易弄清楚),但我想编辑它,以便只有在单元格D2(或D3,D4,D5等)中的值才会发送电子邮件)A低于70.(A栏有电子邮件,B栏有消息,C栏有学生姓名,D栏有他们的数字等级。)我觉得它应该是显而易见的,但我的脚本知识是非存在。有人可以帮忙吗?
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 2)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0]; // First column
var message = row[1]; // Second column
var subject = "Math Grade";
MailApp.sendEmail(emailAddress, subject, message);
}
}
答案 0 :(得分:0)
代码只获得2列数据,需要获得4列。
getRange(row, column, numRows, numColumns)
我添加了一行代码,用于获取工作表中有多少列。然后for
循环得到一个额外的代码行来获得成绩,最后,添加了if
条件检查。
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 2; // Number of rows to process
var numOfColumns = sheet.getLastColumn();
// Fetch the range of cells
var dataRange = sheet.getRange(startRow, 1, numRows, numOfColumns);
// Fetch values for each row in the Range.
var data = dataRange.getValues();
var grade = "";
var i = 0;
for (i=0;i<data.length;i++) {
var row = data[i];
var emailAddress = row[0]; // First column
var message = row[1]; // Second column
grade = row[3];
if (grade < 70) {
var subject = "Math Grade";
MailApp.sendEmail(emailAddress, subject, message);
};
};
};