Как отследить изменение цвета ячейки в 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 проверять, был ли изменен цвет целевой ячейки на интересующий Вас и изменять сохраненное Вашей функцией значение.

→ Ссылка