spreadsheetapp sheets scripts script macro google example ejemplos docs developer apps app google-apps-script google-spreadsheet

google apps script - sheets - Copie la fórmula usando script



google spreadsheet macro (1)

Creo que lo que estás tratando de lograr se puede lograr de manera más eficiente con un arrayformula integrado:

https://support.google.com/docs/answer/3093275

Lugar en H3:

= ARRAYFORMULA (FECHA (A3: A, B3: B, 1))

para cada una de sus fórmulas en H a L en la fila 3, rodéenlas con una fórmula de matriz y extiendan los argumentos con rangos abiertos comenzando con la fila 3 como en el ejemplo anterior

He estado trabajando en un guión (con la ayuda de gente en SO). He logrado crear un script que importa un archivo csv y actualiza rangos con nombre basados ​​en los datos importados.

Aquí hay una imagen de lo que estoy tratando de hacer:

En este punto, he importado datos que se han llenado en las columnas A: G. Las celdas en las columnas H: L son fórmulas y se basan en los datos en A: G. Como importé datos, ahora los datos son más largos que el rango de fórmula. Si no dependiera de la secuencia de comandos, simplemente haría doble clic en el pequeño cuadrado azul en la parte inferior derecha de las celdas resaltadas y las fórmulas se copiarían. Esto es lo que me gustaría que hiciera el script una vez que haya importado los datos.

Creé un rango llamado "fórmula_range" que se actualiza automáticamente con la longitud de los datos. "fórmula_range" comienza en la celda H3 y termina en L: N donde N es la longitud de las filas en la hoja.

"formula_range" por lo tanto contiene algunas celdas pobladas con fórmula y luego filas en blanco hasta el final de la hoja.

Vi esta publicación SO. Entonces en inglés, mi línea de pensamiento es:

  1. Cree una variable formula_range H3: L3 como un rango
  2. pegar formula_range a cada fila en formula_range
  3. Voila?

¿Cómo obtengo la variable formula_range si la primera fila en formula_range tendrá siempre la fórmula para copiarse? Dicho de otra manera, debería arreglarse en H3: L3.

Intenté esto:

var copy_range = ss.getRangeByName("formula_range").getRange(1,5,1); SpreadsheetApp.getUi().alert(copy_range);

Mi alerta decía "indefinido" (realmente no estaba seguro de lo que mostraría).

Mi línea de pensamiento no es la más eficiente ya que voy a copiar la fórmula existente. Tal vez hay una mejor manera?

¿Cómo obtengo la primera fila en un rango con nombre formula_range[0]; ?

¿Cómo puedo usar script para copiar fórmula en formula_range?