- Вы хотите обновить sh пользовательских формул
=GetCellColorCode(###)
в ячейках при изменении цвета фона.
Чтобы достичь вашей цели, я бы хотел предлагаем обновить sh формул, используя TextFinder и триггер события OnChange.
Использование:
1. Пример сценария.
Скопируйте и вставьте следующий сценарий.
function onChange(e) {
if (e.changeType === "FORMAT") {
const formula = "=GetCellColorCode"; // Function name of your custom function.
const sheet = e.source.getActiveSheet();
const tempFormula = "=sampleFormula";
sheet.createTextFinder("^\\" + formula).matchFormulaText(true).useRegularExpression(true).replaceAllWith(tempFormula);
sheet.createTextFinder("^\\" + tempFormula).matchFormulaText(true).useRegularExpression(true).replaceAllWith(formula);
}
}
- В этом примере сценария
=GetCellColorCode
заменяется другим именем с помощью TextFinder, а затем изменено на =GetCellColorCode
. Таким образом, пользовательская формула обновляется. - При непосредственном запуске функции
onChange
в редакторе сценариев возникает ошибка, поскольку эта функция использует объект события триггера события OnChange. Пожалуйста, будьте осторожны.
2. Установите триггер события OnChange.
Пожалуйста, установите триггер события OnChange для функции onChange
.
- В редакторе сценариев выберите Редактировать > Триггеры текущего проекта .
- Нажмите Добавить триггер .
- Под Выберите, какую функцию запустить , выберите название функции, которую вы хотите для запуска.
- В этом случае выберите
onChange
.
- Под Выберите источник события , выберите Из электронной таблицы .
- Под Выберите тип события , выберите При изменении .
- Нажмите Сохранить .
3. Тестовый прогон.
После завершения вышеуказанного потока измените цвет фона ячейки. При этом срабатывает триггер события OnChange и запускается функция onChange
. Затем обновляется пользовательская формула GetCellColorCode
.
В этом сценарии, даже когда ячейка копируется и вставляется, триггер вентиляции OnChange не запускается. Пожалуйста, будьте осторожны с этим. В этом случае измените цвет фона.
Примечание:
- В этом ответе предполагается, что имя вашей пользовательской формулы -
GetCellColorCode
. Поэтому, когда вы изменили имя функции, также измените приведенный выше скрипт. Пожалуйста, будьте осторожны.
Ссылки: