У меня есть скрипт Google, который я использую, когда сотрудники вводят в электронную таблицу такие данные, как адрес электронной почты учащегося и информацию о домашнем задании. Исходя из этих данных, студенту по электронной почте каждый день в 10:00, если они нуждаются в дополнительной помощи. Это работает очень хорошо, однако время от времени возникает ошибка, когда строка заполнена не полностью. Это просто приведет к ошибке и остановит процесс, оставив всех учеников на листе под этой неполной записью без электронного письма на день. Я пытаюсь включить функцию перехвата ошибок, которая заметит, что ячейка пуста, и пропустит эту строку, переходя к следующей, а не просто останавливаясь.
Вот суть того, что у меня сейчас. Может ли кто-нибудь указать мне правильное направление? Я не очень хороший программист.
var mainSheet = ivList[i];
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(mainSheet);
//empty row checker. Ends with lastFullRow
var range = sheet.getDataRange();
var values = range.getValues();
var row = 0;
for (var row=0; row<values.length; row++) {
if (!values[row].join("")) break;
}
var lastFullRow = row;
//Stop empty row Check
var cell = sheet.getRange(3, 1, lastFullRow, 7);
Logger.log(lastFullRow);
var UserData = cell.getValues();
try{
for (var j in UserData) {
var row = UserData[j];
var grade = row[0];
var lastName = row[1];
var firstName = row[2];
var studentEmail = row[3];
var staffEmail= row[4];
var iCanStatement = row[5];
var date = row[6];
// if IV sheet send IV email
if (i == 0 || i == 2) {
var emailSubject = "INTERVENTION NOTICE for "+date;
var studentBody = "NOTICE: This is an automated message confirming that you have been assigned to the INTERVENTION LIST."+"\n"+"\n"+"DATE: "+date+"\n"+"\n"+"FIRST NAME: "+firstName+"\n"+"\n"+"LAST NAME: "+lastName+"\n"+"\n"+"EMAIL ADDRESS: "+studentEmail+"\n"+"\n"+"STAFF MEMBER: "+staffEmail+"\n"+"\n"+"I CAN STATEMENT: "+iCanStatement;
var staffBody = "NOTICE: This is an automated message confirming that you have assigned a student to the INTERVENTION LIST"+"\n"+"\n"+"DATE: "+date+"\n"+"\n"+"FIRST NAME: "+firstName+"\n"+"\n"+"LAST NAME: "+lastName+"\n"+"\n"+"EMAIL ADDRESS: "+studentEmail+"\n"+"\n"+"STAFF MEMBER: "+staffEmail+"\n"+"\n"+"I CAN STATEMENT: "+iCanStatement;
var fromName = "**"
}
// if homework sheet send homework Email
if (i == 1 || i ==3) {
var emailSubject = "HOMEWORK ROOM NOTICE for "+date;
var studentBody = "NOTICE: This is an automated message confirming that you have been assigned to the HOMEWORK LIST."+"\n"+"\n"+"DATE: "+date+"\n"+"\n"+"FIRST NAME: "+firstName+"\n"+"\n"+"LAST NAME: "+lastName+"\n"+"\n"+"EMAIL ADDRESS: "+studentEmail+"\n"+"\n"+"STAFF MEMBER: "+staffEmail+"\n"+"\n"+"ASSIGNMENT: "+iCanStatement;
var staffBody = "NOTICE: This is an automated message confirming that you have assigned a student to the HOMEWORK LIST"+"\n"+"\n"+"DATE: "+date+"\n"+"\n"+"FIRST NAME: "+firstName+"\n"+"\n"+"LAST NAME: "+lastName+"\n"+"\n"+"EMAIL ADDRESS: "+studentEmail+"\n"+"\n"+"STAFF MEMBER: "+staffEmail+"\n"+"\n"+"ASSIGNMENT: "+iCanStatement;
var fromName = "**"
}
// Send Emails
MailApp.sendEmail(studentEmail, emailSubject, studentBody, {bcc:"**@**.org", name:fromName, replyTo:staffEmail});
MailApp.sendEmail(staffEmail, emailSubject, staffBody, {name:fromName, replyTo:staffEmail});
}
}
catch(e) {
MailApp.sendEmail("**@**.org", "Error on Intervention Spreadsheet 3.0", e.message);
}