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

162
Views
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 answers
Answer question

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 Report

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 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!