setFormulas失踪]

时间:2013-07-05 12:24:37

标签: google-apps-script google-sheets

我正在尝试编写我的第一个脚本。它应该用用户设置的变量填写一组公式(不确定变量是否是正确的单词)。

第13行的

我得到了一个错误的错误“这个代码,有人能找到它丢失的地方吗?所有括号似乎都配对得​​很好:S

function setFormula(formulas) {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  //Asks for Cell range data
var week = Browser.inputBox("Week:");
  var start = Browser.inputBox("Start:");
var end = Browser.inputBox("End:");  

 // The magic
 var formulas = [

   ["=SUM('Week " + week + "'!E" + start + ":E" + end +")"],
   ["=COUNTIF('Week " + week + "'!E" + start + ":E" + end +";""Test/Media"")"],
   ["=COUNTIF('Week " + week + "'!E" + start + ":E" + end +";""Test/Hardware"")"]


 ];
//Highlighted cell range will get the magic
 var range = sheet.getActiveRange();
 range.setFormulas(formulas);
}

感谢您提供任何帮助或建议:)

2 个答案:

答案 0 :(得分:0)

+";""..."

这是无效的语法。

Javascript字符串文字使用反斜杠作为转义字符,因此您应该编写

+";\"..."

答案 1 :(得分:0)

你可以抛弃带有错误引号的括号句(c),这就是这里的情况。

["=COUNTIF('Week " + week + "'!E" + start + ":E" + end +";""Test/Media"")"],
                                                          ^^          ^^

    ... should be ...

["=COUNTIF('Week " + week + "'!E" + start + ":E" + end +";'Test/Media')"],

...并在下一行重复。

当您需要在字符串中包含引号时,您在javascript中有两个选项。

  1. 在双引号分隔的字符串中使用单引号(反之亦然),就像您已经做的那样。 (你只是错过了一些。)

  2. 使用 \ 转义单引号,如:

    ';\'Test/Media\')'