Формула ячейки не обновляется при вставке со скриптом приложения - PullRequest
0 голосов
/ 02 ноября 2018

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

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

Как я могу это сделать?

/* This function is called several times and so "A2" only makes sense
at the time I set the formula, after that, it should become "A3" or "A4"
*/
function writeDataLine(dataSheet, date, playerName, idx) {
  var formula = "=IF(VLOOKUP(A2;G$2:H;2;FALSE)=C2;1;0)"
  dataSheet.getRange(idx + 2, 4, 1, 1).setFormula(formula);
}

(я пишу в D2 и делаю ссылки на A2 и C2)

[править] Я попробовал нотацию R1C1, но получил #ERROR!

function writeDataLine(dataSheet, date, playerName, idx) {
  var formula = "=IF(VLOOKUP(R[0]C[-3];G2:H;2;FALSE)=R[0]C[-1];1;0)"
  dataSheet.getRange(idx + 2, 4, 1, 1).setFormulaR1C1(formula);
}

1 Ответ

0 голосов
/ 04 ноября 2018

Проблема в том, что вы использовали сочетание RC и A1notations при настройке формул R1C1. Без квадратных скобок RC является абсолютным. Так, R2C7:R1000C8 можно использовать для G2:H1000.

Несмотря на это, я не думаю, что вам понадобится сценарий. Я верю, что ты хочешь это

D2:

=ARRAYFORMULA(IF(VLOOKUP(A2:A100;G$2:H;2;FALSE)=C2:C100;1;0))

В качестве альтернативы, вы можете просто использовать метод Автозаполнение в диапазоне D2 без использования R1C1.

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