参数列表语法错误后缺少)

时间:2020-02-07 22:34:05

标签: javascript google-apps-script google-sheets syntax google-sheets-formula

我正在尝试创建一个脚本,该脚本根据从表单提交的数据创建一个新选项卡,并在创建时将公式插入到新选项卡中。脚本的最后一行给了我一个语法错误。 “在参数列表后缺少”。所有括号似乎都已正确关闭。我想念什么吗?

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 个答案:

答案 0 :(得分:1)

假设tabName是一个字符串,则它应该是Google表格一侧的单引号。还可以使用+在Google Apps脚本端进行串联

替换

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

作者

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

另一方面,请记住,最佳做法不鼓励在循环内使用Apps Script读/写方法

参考

答案 1 :(得分:0)

最后一条语句中存在语法错误,在此语句中,两个字符串之间用tabName连接。可以使用+运算符执行字符串连接,如下所示:

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

之所以收到错误,是因为没有操作符来表示一个操作或一个逗号来表示一个附加参数,它期望看到)函数的关闭。