Как отследить изменение цвета ячейки в Google sheets
У меня есть функция, которая подсчитывает количество ячеек определенного цвета в гугл таблицах. Как сделать, чтобы эта функция вызывалась каждый раз, как изменился цвет в ячейке таблицы?
function countColoredCells(countRange,colorRef) {
let activeRange = SpreadsheetApp.getActiveRange();
let activeSheet = activeRange.getSheet();
let formula = activeRange.getFormula();
let rangeA1Notation = formula.match(/\((.*)\;/).pop();
let range = activeSheet.getRange(rangeA1Notation);
let bg = range.getBackgrounds();
let values = range.getValues();
let colorCellA1Notation = formula.match(/\;(.*)\)/).pop();
let colorCell = activeSheet.getRange(colorCellA1Notation);
let color = colorCell.getBackground();
let count = 0;
for(let i=0;i<bg.length;i++)
for(let j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
count=count+1;
return count;
};
Ответы (1 шт):
Автор решения: Geo Alex
→ Ссылка
Воспользуйтесь триггером onChange.
function onChange(e) {
if (e.changeType === "FORMAT") {
//Что-то делаем
}
}
Можете считать количество ячеек прямо из этого триггера, запуская свою функцию. А можете сохранять где-то результат своей функции, а в триггере onChange проверять, был ли изменен цвет целевой ячейки на интересующий Вас и изменять сохраненное Вашей функцией значение.