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

Javascript 缺少)后参数列表语法错误,javascript,google-apps-script,google-sheets,syntax,google-sheets-formula,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<l

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

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)")');
  }
}

上一条语句中出现语法错误,在该语句中,您将两个字符串连接在一起,而tabName位于两个字符串之间。可以使用+运算符执行字符串连接,如下所示:

'=QUERY(\'Form Responses 1\'!A2:R,"select * where C="' + tabName + '",-1)")'
收到此错误是因为没有运算符表示操作或逗号表示附加参数,它希望看到函数结束。

假设tabName是字符串,它应该是Google Sheets一侧的单引号。还可以使用+在Google应用程序脚本端连接

替换

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

另一方面,请记住,最佳实践不鼓励在循环内部使用应用程序脚本读/写方法

参考文献


您的变量在引号之外,并且您没有对其执行任何操作。换成这个。。。C=+tabName+…这帮了大忙。它将tabName放入文档中。我确实需要添加额外的引号以确保查询在前端运行:C='+tabName+'在setformula表达式中检查您的'tabName'
'=QUERY(\'Form Responses 1\'!A2:R,"select * where C=\'"' + tabName + '\'",-1)")'