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



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

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是一个字符串,它应该是单引号括在谷歌表格一侧。还可以使用+在 Google Apps 脚本端进行连接

取代

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

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

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

参考

  • https://developers.google.com/apps-script/guides/support/best-practices

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

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

收到错误是因为没有运算符来表示操作或逗号来表示其他参数,它期望看到带有)的函数的结束。