У меня есть лист с более чем 100 000 ячеек (скоро будет более 300 000 ячеек), используемый в качестве диаграммы Ганта.Каждая ячейка имеет формулу IF, которая возвращает букву X, если заголовок соответствующего столбца (дата) находится между датой начала и окончания строки.
Но то, что существенно замедляет лист, - это условное форматирование.Условное форматирование говорит, что если значением ячейки является X, то измените цвет фона ячейки и цвет шрифта на зеленый.Если нет X, цвет фона должен быть белым.Поскольку условное форматирование, насколько я понимаю, пересчитывается каждый раз, когда вы вносите какие-либо изменения в лист, производительность существенно ухудшается.Поэтому я решил удалить условное форматирование и добавить его в виде сценария с помощью кнопки меню, которую я могу щелкнуть в любое время, когда захочу, чтобы он запускался, в отличие от условного форматирования, запускаемого каждый раз, когда я выполняю редактирование листа.
Вот где я получил сценарий, который не работает.Я попробовал пару десятков вариантов этого, но не могу найти то, что работает - иногда я запускаю его без ошибок, иногда возникает ошибка.Мой контекст где-то неверен?
function formatting() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet 1");
var range = ss.getRange("A1:A100");
var cellValue = range.getValues();
if (cellValue === 'X') {
ss.range.setBackgroundColor('#000000'); }
else {
cellValue.setBackgroundColor('#ffffff'); }
}