Инструкция setFormula, создающая ошибку разбора - PullRequest
0 голосов
/ 05 июля 2019

Я пытался внести некоторые изменения в унаследованную электронную таблицу и, будучи новичком в Google Script, я изо всех сил. Я пытаюсь установить формулу в ячейке, и я добавил другие строки, которые, кажется, работают нормально, но я в растерянности с этим.

Мне удалось заставить работать нижеприведенное, но я не хочу абсолютных ссылок.

targetSheet.getRange(startRow + 1, 4, 1, 1).setFormula('=IF(C5 < G5, \"S\",IF(C5 > I5,\"VC\",\"C\"))');

Приведенный ниже код - это то, к чему я надеялся перейти, чтобы он был более динамичным.

targetSheet.getRange(startRow + 2, 4, 1, 1).setFormulaR1C1("=IF(R[0]C[-1] < R[0]C[+3], \"S\", IF(R[0]C[-1] > R[0]C[+5], \"VC\" , \"C\"))");

Однако приведенное выше просто приводит к ошибке разбора формулы. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 05 июля 2019

При использовании нотации R1C1 для расширения листов вам не нужно лишнее +, если целевая ячейка имеет большее значение строки или столбца. Вы можете исправить эту формулу, просто удалив:

var range = targetSheet.getRange(startRow + 2, 4, 1, 1);
range.setFormulaR1C1('=IF(R[0]C[-1] < R[0]C[3], "S", IF(R[0]C[-1] > R[0]C[5], "VC" , "C"))');

Вы также можете избежать указания обратной косой черты, чтобы избежать лишних двойных кавычек, используя одинарные кавычки вокруг всей формулы в setFormulaR1C1().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...