function myFunction() { const minimumLevel = [0,5,10,15,20,25,30]; var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet1"); var data = sheet.getRange(2,1,data.getLastRow() - 1, data.getLastColumn()).getValues(); data.forEach((r,i) => { if(r[9] < minimumLevel[1]){ console.log("true"); // Fetch the email address var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").getRange("B2"); var emailAddress = emailRange.getValues(); // Send Alert Email. var message = 'This is your Alert email!'; // Second column var subject = 'Your Google Spreadsheet Alert'; MailApp.sendEmail(emailAddress, subject, message); } }) }Estoy tratando de comparar los valores de la celda y luego, si el valor de esa celda cae por debajo del nivel mínimo, enviará un correo electrónico a alguien, sin embargo, creo que estoy atascado. por favor alguien puede ayudar?
Pruébalo de esta manera:
function myFunction() { const minimumLevel = [0,5,10,15,20,25,30]; var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet1"); var data = sheet.getRange(2,1,sheet.getLastRow() - 1, sheet.getLastColumn()).getValues(); data.forEach((r,i) => { if(r[9] < minimumLevel[1]){ console.log("true"); //send email code here } }); }Según sus nuevos comentarios, entiendo que tiene dos columnas, una para el precio real de las acciones y otra para el nivel mínimo deseado. También entiendo que su objetivo es enviar un correo electrónico de alerta cuando el precio de las acciones desciende por debajo del precio de alerta. Si mi comprensión es precisa, puede alcanzar sus objetivos fácilmente haciendo pequeñas modificaciones en su guión.
La secuencia de comandos modificada a continuación extraerá primero los datos de las columnas de precio de las acciones y nivel de alerta. Supongo que el precio de las acciones está en la Columna A y las alertas en la Columna B, pero puede modificarlo fácilmente. Luego, el script ejecutará un bucle for y, si el precio de las acciones es más bajo que el nivel de alerta, se enviará un correo electrónico.
function myFunction() { var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet1"); var stockPrice = sheet.getRange(2, 1, sheet.getLastRow() - 1, 1).getValues() .flat(2); var minimumLevel = sheet.getRange(2, 2, sheet.getLastRow() - 1, 1).getValues() .flat(2); var emailAddress = sheet.getRange("B2").getValue(); var emailMessage = "{ ALERT MESSAGE }"; var emailsubject = "{ EMAIL SUBJECT }"; for (let i = 0; i < stockPrice.length; i++) { if (stockPrice[i] < minimumLevel[i]) { MailApp.sendEmail(emailAddress, emailsubject, emailMessage); } } }Pruebe este enfoque y avíseme si encuentra alguna dificultad.