我将在下面粘贴的Google表格脚本会搜索我们的团队工作表,并将单元格中的信息与条件进行比较。如果不符合条件,则突出显示该单元格,并将信息放入通过电子邮件发送的数组中。
我有一些与此脚本非常相似的脚本,它们工作正常,但是当我尝试读取可能包含“ 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);
输出:未定义,失败
我从中记录此信息的表看起来像这样
Batch ID STATUS
YOLP34 Pass
DGWBC4 Pass
RRPFB4 Pass
YYFBC4 Fail
EPFBC4 Fail
该脚本将遍历单元格并突出显示并将所有“失败的批次ID状态”保存到阵列中。如果已突出显示,它将被跳过;如果未将其放入数组,则电子邮件不会发送,因此仅发送新信息。我控制当前有多少发送出去,并且效果很好,但是我不知道如何格式化输出。
未定义部分需要显示读取为“ EPFBC4”,但当前显示为“ undefined”
谢谢你, 坦纳·奥斯本(Tanner Osborn)