Отсутствует) после синтаксической ошибки списка аргументов - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь создать скрипт, который создает новую вкладку на основе данных, отправленных из формы, и вставляет формулу в новую вкладку при создании. Последняя строка скрипта дает мне синтаксическую ошибку. "Отсутствует) после списка аргументов". Все скобки, кажется, закрыты правильно. Я что-то упустил?

function makeTabs() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var last = sheet.getLastRow();
  for(var i=0; i<last; i++){
    var tabName = sheet.getRange(i+1,1).getValue();
    var create = ss.insertSheet(tabName);
    var tab = ss.getRange('A2').activate();
    var tab = ss.getCurrentCell().setFormula('=QUERY(\'Form Responses 1\'!A2:R,"select * where C="'tabName'",-1)")');
  }
}

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

Предполагая, что tabName является строкой, это должна быть одинарная кавычка, заключенная на стороне Google Sheets. Также используйте + для объединения на стороне скрипта Google Apps

Замените

'=QUERY(\'Form Responses 1\'!A2:R,"select * where C="'tabName'",-1)")'

на

'=QUERY(\'Form Responses 1\'!A2:R,"select * where C=\'"' + tabName + '\'",-1)")'

С другой стороны, имейте в виду, что лучший Практики не поощряют использование методов чтения / записи скриптов приложений внутри циклов

Ссылка

0 голосов
/ 08 февраля 2020

В последнем операторе есть синтаксическая ошибка, когда вы объединяете две строки с tabName между ними. Конкатенацию строк можно выполнить с помощью оператора +, например:

'=QUERY(\'Form Responses 1\'!A2:R,"select * where C="' + tabName + '",-1)")'

Ошибка получена, поскольку без оператора, обозначающего операцию, или запятой, обозначающей дополнительный аргумент, он ожидает увидеть закрытие функции с помощью ).

...