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

236
Vistas
¿Cómo obtener fórmulas de una fila y distribuirlas en un rango usando un script?

¿Cómo puedo hacer que este complete el rango definido en el código?

Entiendo que una vez que lo obtengo, tengo que iterar sobre el rango para establecer las fórmulas, pero no puedo entender cómo hacerlo:

 let formulas = boqPipeworkSheet.getRange(7, 1, 1, 8).getFormulasR1C1(); let rngFormulas = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8) rngFormulas.forEach(c => rngFormulas(c).setFormulas(formulas))

Por supuesto, me da un error porque hay mucho que aprender en forEach y mucho más.

Aprecia tu tiempo.

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

0

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

Guión modificado:

 var src = boqPipeworkSheet.getRange(7, 1, 1, 8); var dst = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8); src.copyTo(dst, SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);

Nota:

  • Si desea copiar las mismas fórmulas de boqPipeworkSheet.getRange(7, 1, 1, 8) con el mismo rango, puede usar la siguiente modificación.

     var src = boqPipeworkSheet.getRange(7, 1, 1, 8); var dst = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8); dst.setFormulas(Array(dst.getNumRows()).fill(src.getFormulas()[0]));

Referencia:

  • copyTo(destino, copyPasteType, transpuesto)

Adicional:

Cuando vi su script, de let rngFormulas = boqPipeworkSheet.getRange(7, 8, boqPipeworkSheet.getLastRow(), 8) , pensé que quería copiar la fórmula de A7:G7 a H8:O . Pero si desea copiar la fórmula de A7:G7 a A8:G , puede usar la siguiente modificación. Como secuencia de comandos de muestra, me gustaría agregar esto porque pensé que este método podría ser útil para otros usuarios.

 var src = boqPipeworkSheet.getRange(7, 1, 1, 8); var dst = boqPipeworkSheet.getRange(8, 1, boqPipeworkSheet.getLastRow() - 7, 8); src.copyTo(dst, SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Me perdí bastante en tus coordenadas. Por favor, ponga los que necesita.

notación: (fila del número 1, columna del número 1)
Lo que hace es copiar fórmulas de la celda (7, 1) a la (7, 8).
Luego los pone en cada fila desde la fila 8 hasta la última fila. La primera fila es (8, 1) a (8, 8).

 const formulas = boqPipeworkSheet.getRange(7, 1, 1, 8).getFormulasR1C1(); const lastRow = boqPipeworkSheet.getLastRow(); for (let i = 8; i <= lastRow; i++) { const rngFormulas = boqPipeworkSheet.getRange(i, 1, 1, 8) rngFormulas.setFormulasR1C1(formulas); }

¡Pregunta si necesitas más aclaraciones!

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