使用脚本编辑器自动用公式填充新行适用于一个公式,不适用于另一个公式

时间:2018-09-24 15:35:07

标签: google-apps-script

我正在使用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);
}

有人可以解释为什么第二个变体不起作用吗?

1 个答案:

答案 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)))");