Автоматическое заполнение новых строк формулой с помощью редактора сценариев работает для одной формулы, но не для другой - PullRequest
0 голосов
/ 24 сентября 2018

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

Все, что я сделал, это изменил формулу.Я новичок в этом и следовал этому уроку: https://www.youtube.com/watch?v=cCBtsQGtzoQ

ЭТО РАБОТАЕТ

function AUTOFILLLINK() {
  var ss3 = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  ss3. getRange("AD2").setFormula("=(F2&G2&E2)");
  var lr3 = ss3. getLastRow();
  var filldownrange3 = ss3.getRange(2, 30, lr3-1);
  ss3. getRange("AD2").copyTo(filldownrange3);
}

ЭТОТ ОДИН НЕ РАБОТАЕТ - он возвращает следующую ошибку: Отсутствует) после списка аргументов.(строка 3, файл "LINK AUTOFILL") Уволить

function AUTOFILLLINK() {
  var ss3 = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  ss3.getRange("AD2").setFormula("=IF(ISERROR(VLOOKUP(AK11,Links!A:E,5,false)),"", (VLOOKUP(AK11,Links!A:E,5,false)))");
  var lr3 = ss3. getLastRow();
  var filldownrange3 = ss3.getRange(2, 30, lr3-1);
  ss3. getRange("AD2").copyTo(filldownrange3);
}

Может кто-нибудь объяснить, почему не работает второй вариант?

1 Ответ

0 голосов
/ 24 сентября 2018

замените "" на '' или \"\".

, написав "", заканчивая строку этой кавычкой и открывая новую строку.таким образом, у вас есть две возможные строки, которые не объединены, поэтому синтаксис недопустим, интерпретатор ожидает первую строку ), поэтому вы получаете это сообщение:

первая строка

"=IF(ISERROR(VLOOKUP(AK11,Links!A:E,5,false)),"

вторая строка

", (VLOOKUP(AK11,Links!A:E,5,false)))"

вы можете сделать:

ss3.getRange("AD2").setFormula("=IF(ISERROR(VLOOKUP(AK11,Links!A:E,5,false))," + ", (VLOOKUP(AK11,Links!A:E,5,false)))");

, но один аргумент будет пустым, и вы получитев вашей клетке:

=IF(ISERROR(VLOOKUP(AK11,Links!A:E,5,false)),, (VLOOKUP(AK11,Links!A:E,5,false)))

, поэтому попробуйте:

ss3.getRange("AD2").setFormula("=IF(ISERROR(VLOOKUP(AK11,Links!A:E,5,false)),'', (VLOOKUP(AK11,Links!A:E,5,false)))");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...