Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

313
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda