У меня есть лист, который показывает результаты расчетов на основе других листов поддержки.Изменения вносятся вручную, но «сводный» лист - это только формулы.Эти изменения появляются в разбросанных ячейках, по большей части несмежных.
Я хочу выделить, какие ячейки изменились в сводном листе после ручного изменения на вспомогательных листах.Для этого я использую второй сводный лист, который начинается с копии основного.
Последний компонент - это скрипт, который запускается после редактирования.Он просматривает итоговый диапазон и сравнивает значения со второй копией.Любые различия выделяются в основном резюме и копируются во второе резюме.
Этот процесс работает, но довольно медленный, я думаю из-за обновлений.Псевдокод:
var src = summary.getRange(...)
var dst = copy.getRange(...)
var src_cell;
var dst_cell;
src.setBackground('white'); // Bulk reset of changes
for (row = 1; row < src.getNumRows(); row++) {
for (col = 1; col < src.getNumColumns(); col++) {
src_cell = src.getCell(row, col);
dst_cell = src.getCell(row, col);
if (src_cell.getDisplayValue() != dst_cell.getDisplayValue()) {
dst_cell.setValue(src_cell.getDisplayValue());
src_cell.setBackground('gray');
}
}
}
Я думаю, что нет способа массового обновления разбросанных диапазонов, что кажется простым решением.
Я ищу способы ускорить этот процесс,либо в сценарии, либо с помощью другой стратегии.