missing ) after argument list DATEDIF

missing ) after argument list DATEDIF

本文关键字:list DATEDIF argument after missing      更新时间:2023-09-26

当我在谷歌表单脚本编辑器中运行此脚本时,它显示

参数列表后缺少)。(第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!");
    }
}

您在这里的行:

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

应该是

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

适当的缩进会有很大帮助,但是:

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

CellRow之后没有+Y在双引号中,这就是字符串的定义,所以它在那里完成了实际的字符串。。。你需要单引号:

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

在这一行中:("=DATEDIF(C"+CellRow",TODAY(),"Y")") CellRow和Y是要连接到传递给setFormula的字符串中的变量,对吗?

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