Я пытаюсь запустить следующую функцию при обновлении электронной таблицы (в идеале, любое изменение в столбце А). По сути, скрипт передает имя и bgcolor активной ячейки. Если имя в строке ячейки соответствует переданному имени, а цвет строки соответствует этому активному цвету ячейки, он добавляет его в redCount и возвращает это количество.
Мой код работает при нажатии кнопки «Сохранить» в редакторе сценариев (значения обновляются), но не работает с триггерами Google (управляемыми по времени, «Из электронной таблицы») или даже когда он жестко запрограммирован с помощью onEvent ( е). Почему кнопка «Сохранить» в редакторе сценариев обрабатывает выполнение функции не так, как триггеры, и как мне это исправить?
/**
* The number of times an Editor's Name appears on a red background.
* @param {string} bgColour - A cell with the background colour we wish to track.
* @param {string} editorName - The Editor's Name in quotation marks: "James".
* @return The number of times an Editor's Name appears on a red background.
* @customfunction
*/
function countSpreads(editorName) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var rangeData = sheet.getDataRange();
var lastRow = rangeData.getLastRow();
var searchRange = sheet.getRange(1,2, lastRow-1);
var actCell = sheet.getActiveCell();
var activeBg = actCell.getBackground();
var redCount = 0;
var bgColors = searchRange.getBackgrounds();
//Get array of values in the search Range
var rangeValues = searchRange.getValues();
// Loop through array and if condition met +1 to redCount
for (j = 0 ;j < lastRow - 1; j++){
if(rangeValues[j] == editorName && bgColors[j] == activeBg){
redCount++;
}
};
return redCount;
}