Optimering af kode - Stack Overflow
Jeg prøver at lave en custom function i Google Sheets, der kan aflæse en værdi i en defineret kolonne, hvis baggrunden i en anden defineret kolonne svarer til en defineret celle.Jeg går fejl på funktionen, så snart jeg laver en range på mere end 200 linjer, og jeg skal gerne op og have funktionen til at tjekke ca. 1500 linjer.
Kan i hjælpe mig i den rigtige retning eller hjælpe lidt til med optimeringen af koden?
function countOnAltBGColor(Colm2Chk, StartRow, EndRow, Colm2Cnt, colorref) {
/* Example formula:
=countOnAltBGColor("N",14,31,"W","N3", A1)
How this works:
=> Check color of Column N, itterate from row 14 to 31.
Is the color the in cell N<row number> same as cell N3?
Then add the value in cell W<row number> to the returned value.
So what is the A1? Just so updates happen, point it at a cell with random number.
Change that cell and the formula is recalculated.
*/
var sheet = SpreadsheetApp.getActiveSheet();
var color = sheet.getRange(colorref)
.getBackground();
// initialize values
var count = 0;
var cell2val = 0;
var cell1 = sheet.getRange(Colm2Chk + StartRow.toString());
var cell2 = sheet.getRange(Colm2Cnt + StartRow.toString());
var ChkCell = "A1";
var CntColm = "A1";
// do the loop
for (var i = StartRow; i < EndRow + 1; i++) {
ChkCell = Colm2Chk + i.toString();
CntCell = Colm2Cnt + i.toString();
cell1 = sheet.getRange(ChkCell);
cell2 = sheet.getRange(CntCell);
if (cell1.getBackground() == color)
{
count = +count + +cell2.getValue()
};
};
return count;
}