在参数列表DATEDIF之后丢失)

时间:2015-04-08 13:29:04

标签: javascript

当我在Google表格脚本编辑器中运行此脚本时,它说

  

缺少)参数列表后。 (第10行,文件"代码")

但无论我把)放在哪里,它都无法解决。我还尝试在字符串引号之前添加\并将其更改为单引号,但无济于事。

这是脚本:

function onEdit(event) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = SpreadsheetApp.getActiveSheet();
    var CellRow = SpreadsheetApp.getActiveRange().getRow();
    var CellColumn = SpreadsheetApp.getActiveRange().getColumn();
    var sheetName = SpreadsheetApp.getActiveSheet().getSheetName();
    if (and(sheetName == "MainView", CellColumn == 6)) {
        sheet.getRange(CellRow, CellColumn).setFormula("=DATEDIF(C" + CellRow ",TODAY(),"
        Browser.msgBox("DON'T MESS WITH THE FORMULAS!");
    }
}

3 个答案:

答案 0 :(得分:0)

你的话在这里:

.setFormula("=DATEDIF(C"+CellRow",TODAY(),"Y")");
  • 缺少+
  • 引号有问题。内部"需要使用\
  • 进行转义

应该是

.setFormula("=DATEDIF(C"+CellRow +",TODAY(),\"Y\")");

答案 1 :(得分:0)

适当的缩进将会有很长的路要走,但是:

("=DATEDIF(C"+CellRow",TODAY(),"Y")"); 

在CellRow之后没有+,你有Y双引号,这是你的字符串定义,所以它在那里完成你的实际字符串...你需要单引号:< / p>

("=DATEDIF(C"+CellRow+",TODAY(),'Y')");

答案 2 :(得分:0)

在这一行中:("=DATEDIF(C"+CellRow",TODAY(),"Y")") CellRow和Y是你正在传入setFormula正确的字符串中连接的变量吗?

如果是这样的话,它应该是("=DATEDIF(C"+CellRow+",TODAY(),"+Y+")") 您必须在正在构建的每个字符串之间使用连接运算符(+)。