Preguntador por primera vez, acosador de StackOverflow desde hace mucho tiempo. Aquí está la situación, tengo el siguiente script que me envía un correo electrónico cada vez que ingreso los valores correctos en las columnas 18 y 20, estos valores pueden ir a cualquier fila en la hoja de cálculo de destino, y siempre que estén en la columna correcta, se enviará un correo electrónico. El problema es que necesito que se envíe un correo electrónico solo después de ingresar los dos valores correctos en las dos celdas requeridas. En este momento, si se cumple cualquiera de las condiciones, envía un correo electrónico, necesito averiguar cómo hacer que el script requiera que se cumplan ambas condiciones antes de enviar el correo electrónico.
¿Algunas ideas?
function sendMailEdit(e){ if ((e.range.columnStart != 18 || e.value != "Created") && (e.range.columnStart != 20 || e.value != "Inputted")) return; const rData = e.source.getSheetByName('Classified').getRange(e.range.rowStart,1,1,20).getValues(); let fn = rData[0][5]; let ln = rData[0][6]; let ein = rData[0][7]; let email = rData[0][17]; let escape = rData[0][19]; let msg = "Employee " + fn + " " + ln + " has been processed by HR, and can now be further processed by IT"; Logger.log(msg); GmailApp.sendEmail("mhawkins@dnusd.org", "HR Has Processed an Employee", msg) }
En su situación, ¿qué tal la siguiente modificación?
if ((e.range.columnStart != 18 || e.value != "Created") && (e.range.columnStart != 20 || e.value != "Inputted")) return;
const range = e.range; if (![18, 20].includes(range.columnStart)) return; const [r, , t] = range.getSheet().getRange(range.rowStart, 18, 1, 3).getValues()[0]; if (r != "Created" || t != "Inputted") return;
Created
y se Inputted
, respectivamente, se ejecuta el script debajo de la instrucción if.Acerca de su siguiente nueva pregunta,
Si quisiera agregar una tercera condición de la fila 8, ¿le parecería correcto @Tanaike ' const range = e.range; if (![8, 18, 20].includes(range.columnStart)) return; const [ m, , , , , , , , , , r, , t] = range.getSheet().getRange(range.rowStart, 8, 1, 11, 13).getValues()[0]; if (m > "0" || r != "Creado" || t != "Introducido") return; '
Quiero cambiar la secuencia de comandos para enviar un correo electrónico después de que se cumplan 3 condiciones. Quiero incluir las primeras 2 condiciones con las que me ayudó, pero ahora agregue una tercera condición. La tercera condición que quiero es que el valor de la octava columna sea mayor que 0. ¿Tiene sentido?
Sí, eso es correcto, quiero agregar la columna H> 0
sí, eso es correcto, ¿tienes alguna idea de cómo podría hacer eso?
En este caso, ¿qué tal el siguiente script de muestra en lugar del anterior?
if (![8, 18, 20].includes(range.columnStart)) return; const [h,,,,,,,,,,r,,t] = range.getSheet().getRange(range.rowStart, 8, 1, 13).getValues()[0]; if (h <= 0 || r != "Created" || t != "Inputted") return;