Скрипт Google Sheet Script, который я вставлю ниже, просматривает листы наших групп и сравнивает информацию в ячейках с критериями.Если критерии не выполнены, ячейка подсвечивается и информация помещается в массив, который отправляется по электронной почте.
У меня есть несколько скриптов, очень похожих на этот, которые работают нормально, но когда я пытаюсь прочитать содержимое ячейки, которая может содержать «UMVTC5», информация, которая хранится в массиве, не определена.
Я пробовал метод .toString, но он не работает для типа undefined.Любая помощь будет принята с благодарностью.
Спасибо, Таннер
Код:
function ifstatement() {
var ss = SpreadsheetApp.getActiveSpreadsheet();//sheet activation
var sheet = ss.getSheetByName("Testing Pass/Fail");
var rangeData =sheet.getDataRange();
var lastColumn = rangeData.getLastColumn();
var lastRow = rangeData.getLastRow();
var searchRange = sheet.getRange(2,2,lastRow+1,lastColumn+1);
var rangeValues = searchRange.getValues();
var background = searchRange.getBackgrounds();
var DevolID = [];
var DevolID_Fail = [];
var value = "Fail";
//Loop through the sheet
for (i=0; i < lastColumn -1; i++){
for(j=0; j< lastRow -1; j++){
//If the sheet is less than value and not blank
if((rangeValues[j][i]) == value && (rangeValues[j][i]) != ""){
//Highlight the affected percentage
sheet.getRange(j+2,i+2).setBackground("#8190ff");
//If the cell is not blank and the background has not
been marked
if((rangeValues[j][i]!= ""&&background[j][i]!="#8190ff" )){
//Put the DevolID in the Arrray
DevolID_Fail.push(rangeValues[j][i-1]+ " ");
//Show the Testing Status of the Batch ID
DevolID_Fail.push(rangeValues[j][i]+" ");
//Log the DevolID Array
Logger.log('Devol ID_Yield %s :\n ',DevolID_Fail);
}
}
else {
sheet.getRange(j+2,i+2).setBackground("");
};
};
};
if (DevolID_Fail.length > 0){
sendEmail(DevolID_Fail);
};
DevolID_Fail.length = 0;
};
function sendEmail(DevolID_Fail){
var tanner="hi@gmail.com";
var subject="Yield Threshold Failure ";
var Log = Logger.getLog();
var body= "Devol ID Failed Pesticide: "+DevolID_Fail;
MailApp.sendEmail(tanner,subject,body);
Вывод: undefined, Fail
лист, с которого я регистрирую эту информацию, выглядит примерно так
Batch ID STATUS
YOLP34 Pass
DGWBC4 Pass
RRPFB4 Pass
YYFBC4 Fail
EPFBC4 Fail
Скрипт просматривает ячейки, выделяет их и сохраняет все СОСТОЯНИЕ СБОЙ ПОВЕРХНОСТИ в массиве.Если он уже выделен, он будет пропущен, и если ни один из них не будет помещен в массив, электронное письмо не отправляется, поэтому отправляется только новая информация.Я контролирую, сколько отправлено в настоящее время, и это прекрасно работает, хотя я не знаю, как форматировать вывод.
В неопределенной части должно отображаться то, что читается как "EPFBC4", но в данный момент отображается "неопределенное"
Спасибо, Таннер Осборн