1

Je travaille sur une section de code pour créer des plages nommées de lignes dans une feuille Google triée regroupées par la valeur dans la colonne "offset" de chaque ligne. Je suis à la recherche d'un moyen plus efficace de sélectionner ces gammes. Voici ce que j'ai actuellement, tout conseil est apprécié!Comment optimiser le script Google Sheets en sélectionnant et en créant des plages nommées?

function nameRanges (input, sheet, ss, offset){ 
var maxrows = sheet.getMaxRows() 
var numRows = input.getNumRows(); 
sheet.deleteRows(numRows+1, maxrows-numRows); 
var sheetname = sheet.getName() 
var numCol = input.getNumColumns(); 

for (var j = 2, x=2, y=3; i <=numRows -1, j <=numRows, x <=numRows ; x++, y++){ 
    var jvalue = sheet.getRange(j,offset).getValue(); 
    var xvalue = sheet.getRange(x,offset).getValue(); 
    var yvalue = sheet.getRange(y,offset).getValue(); 
    var start = j 

    if (xvalue != yvalue){ 
       var rangesize = sheet.getRange(j, 1, (y-j) , numCol); 
     Logger.log("New NamedRange "+sheetname + jvalue +" created from "+ start + " to " +y); 
     ss.setNamedRange (sheetname + jvalue, rangesize); 
     rangesize.setBorder(true, true, true, true, false, false, "black", SpreadsheetApp.BorderStyle.SOLID) 
     j=y 
    }} 
    } 

Répondre

1

Je vous conseille de ne pas déclarer vos variables à l'intérieur pour les boucles. Déclarez-les dehors, au début. Il y a aussi plusieurs Best practices pour les scripts d'applications qui sont trop longs pour être publiés ici.