我正在使用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行,文件“ AUTOFILL LINKS”)关闭
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);
}
有人可以解释为什么第二个变体不起作用吗?
答案 0 :(得分:0)
将""
替换为''
或\"\"
。
通过写""
,您可以使用引号将字符串结尾并重新打开一个新字符串。因此,您基本上有两个可能没有连接的字符串,因此语法无效,解释器正在等待第一个字符串)
,这就是为什么收到此消息的原因:
第一个字符串
"=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)))");