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

168
Vistas
Ajuste la función de secuencia de comandos de aplicaciones para verificar la columna completa en lugar de una sola fila

Tengo una función onEdit que crea una matriz y usa Range.setValues para "mover" esa fila a otra hoja de trabajo.

 function onEdit(e) { const src = e.source.getActiveSheet(); const r = e.range; if (r.getColumn() == 2 && r.getRow() == 2 && r.getWidth() == 1 && r.getHeight() == 1) { var sheetName; switch (e.value) { case "Pending": sheetName = "Pending"; break; case "In Hand": sheetName = "In Hand"; break; } if (sheetName) { const dest = e.source.getSheetByName(sheetName); const srcRange = src.getRange(r.getRow(),1,1,18); const formulas = srcRange.getFormulas()[0]; const values = srcRange.getValues(); formulas.forEach((formula,i) => { if(formula !== '') values[0][i] = formula; }); dest.getRange(dest.getLastRow()+1,1,1,18)).setValues(values); src.deleteRow(r.getRow(); } } }

La función funciona, pero por el momento solo verifica la Columna 2 - Fila 2 que se muestra aquí:

ingrese la descripción de la imagen aquí

Si cambio el siguiente estado no pasa nada:

ingrese la descripción de la imagen aquí

Sé que esto se debe a que la función no verifica toda la columna, solo verifica el cambio de valor en la Hoja activa - Columna 2 - Fila 2.

Necesito ayuda para ajustar el rango y asegurarme de que se verifique toda la Columna 2, y si se cambia un estado en la Fila 5, los datos de la Fila 5 se mueven, y así sucesivamente.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Reemplace r.getRow() == 2 por r.getRow() >= 2 en la siguiente línea

 if (r.getColumn() == 2 && r.getRow() == 2 && r.getWidth() == 1 && r.getHeight() == 1) {

Lo anterior porque la primera fila tiene los encabezados de columna y es muy poco probable que desee que la fila de encabezados se mueva en caso de que se edite el encabezado de columna de la columna B.

Recursos

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators
about 4 years ago · Juan Pablo Isaza Denunciar

0

La condición if en su código solo funcionará si el usuario editó una celda en la Fila 2 Columna B de su hoja debido a esta condición r.getRow() == 2 .

Si desea verificar la columna completa a partir de la fila 2, cambie su código

De:

 if (r.getColumn() == 2 && r.getRow() == 2 && r.getWidth() == 1 && r.getHeight() == 1) {

A:

 if (r.getColumn() == 2 && r.getRow() > 1 && r.getWidth() == 1 && r.getHeight() == 1) {

Esto garantizará que el script solo aplique la lógica de "mover" si se edita una celda en la columna B a partir de la fila 2.

about 4 years ago · Juan Pablo Isaza Denunciar
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