Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

221
Views
Google Sheets Script - Función onEdit - Enviar correo electrónico después de que se cumplan dos condiciones

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) }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En su situación, ¿qué tal la siguiente modificación?

De:

 if ((e.range.columnStart != 18 || e.value != "Created") && (e.range.columnStart != 20 || e.value != "Inputted")) return;

A:

 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;
  • Mediante esta modificación, cuando los valores de las columnas "R" y "T" se Created y se Inputted , respectivamente, se ejecuta el script debajo de la instrucción if.

Adicional:

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?

Guión de muestra:

 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;
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!