google apps script - sheets - ¿Es posible hacer referencia a rangos discretos en las secuencias de comandos de Google?
secuencia de comandos hoja de calculo (2)
Tiene las siguientes formas de obtener un rango, además del rango con nombre utilizado getRangeByName (nombre) .
Puedes encontrar la documentación .
ACTUALIZAR
Una solución a lo que desea hacer puede ser algo como:
...
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var ranges = [];
var range = ss.getRange(''B2:C3'');
ranges.push(range);
range = ss.getRange(''D10'');
ranges.push(range);
processingFunction(ranges);
...
A continuación, puede pasar la matriz (rangos) a cualquier otra función para su procesamiento.
Tengo una función de script de google que me proporciona un rango de una hoja de cálculo de google.
function getGrainWeights() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
return range = ss.getRangeByName("Brew_Grains");
}
Este rango luego es procesado por otra función que modifica y ajusta los valores en el rango.
"Brew_Grains" es un rango con nombre en mi hoja de cálculo, pero me gustaría reemplazarlo con un rango discreto como "B2, C3, D10", etc. ¿Es posible o hay alguna solución? Aclamaciones
No puedes (por lo que puedo decir) unir dos objetos Range. Sin embargo, si tiene una función personalizada que opera en matrices multidimensionales, puede convertir los rangos en matrices y concatenarlas.
Por ejemplo:
function SUM_RANGE_COLUMN(myRange,colIndex){
var val,sum=0;
for (var i=0;i<myRange.length;i++) if (val=myRange[i][colIndex]) sum+=val;
return sum;
}
function UNION(range1,range2){
return range1.concat(range2);
}
Con lo anterior como funciones personalizadas, puede escribir esto en su hoja de cálculo:
=SUM_RANGE_COLUMN( UNION(E4:F5,E9:F12), 1 )
Para convertir dos rangos reales en matrices, use getValues()
:
function joinRanges( range1, range2 ){
return range1.getValues().concat( range2.getValues() );
}