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

304
Views
Google App Script utilizado con Google Sheets onEdit () no se activa cuando se actualizan las celdas especificadas

Estoy escribiendo un script que toma 2 fechas (fecha de inicio y finalización), crea nuevas columnas para cada semana entre las dos fechas, luego completa automáticamente el inicio de cada semana en el encabezado de las nuevas columnas en una hoja llamada ' Línea de tiempo y finanzas'. La función se llama nm() .

Estoy usando la función onEdit para activar el script cuando cambia la fecha de inicio (celda W1) o la fecha de finalización (celda X1) en 'Cronología y finanzas'.

Se supone que los usuarios no deben editar las celdas W1 o X1 manualmente. Esas celdas están vinculadas a celdas en otra pestaña llamada 'Recurso(s)' en la misma hoja de cálculo mediante la función =MIN('Resource(s)' !G2:G900) y =MAX('Reousrce(s)' !H2:H900) Para aclarar, W1 y X1 en 'Cronología y finanzas' contienen la función mínima y máxima

Mi objetivo es que los usuarios editen la pestaña 'Recurso(s)' que cambiará W1 o X1 en 'Cronología y finanzas' y luego activará la función que crea las columnas.

Mi problema es encontrar una manera para que onEdit reconozca cuándo se ha cambiado una celda y luego active el script.

Encontré 2 soluciones para especificar qué celdas se deben editar para activar, pero cada una tiene problemas:

Solución 1:

La función se activa con éxito cuando W1 o X1 se actualizan debido a un cambio en la hoja de 'Recurso(s) pero involuntariamente ejecuta el script cuando se cambia cualquier celda en 'Cronología y finanzas'.

¿Cómo puedo limitar el activador solo a W1 o X1 usando esta solución? ¿Estoy malinterpretando el uso de .getA1Notation() ?

Solución 2

La función solo se activará con éxito si el usuario ingresa y escribe manualmente las fechas en W1 o X1, no cuando 'Recurso(s)' actualice W1 o X1.

Supongo que esta solución solo verifica la función en la celda ( =MIN('Resource(s)' !G2:G900) y =MAX('Reousrce(s)' !H2:H900) ) en lugar del valor en el celda (las fechas reales)

¿Hay alguna manera de que el script busque una edición en el valor de una celda en lugar de un cambio de una función?

El código está abajo:

 function onEdit(e){ var template = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Timeline & Financials"); var startDate = "V3"; var endDate = "V4"; // Solution 1 // if (e.range.getA1Notation() == startDate || e.range.getA1Notation() == endDate ){ // console.log("in if"); // return; // } else { // deleteColumns(); // nm(); // } // Solution 2 // if (e.range.rowStart != 1 || !(e.range.columnStart >= 23 && e.range.columnStart < 25) ){ // console.log("in if"); // return; // } else { // // deleteColumns(); // // nm(); // } } ```
about 4 years ago · Juan Pablo Isaza
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!