所有google Sheet构建函数的ReferenceError

时间:2017-04-02 11:35:20

标签: javascript google-apps-script google-sheets

我开始使用Google App Scripts并编写了一些内容。 我遇到的问题如下:ReferenceError: "COUNT" is not defined

当我尝试在Google App脚本中使用COUNTA或任何其他版本时,我也会得到这个。

我不确定天气与否我的脚本会起作用,但如果能够执行它,测试它会容易得多。

作为参考,我在这里有问题:

function fillMonthFromChildSheet()
{
  var sheet = SpreadsheetApp.getActiveSheet();
  var dates = [];
  var dateCell;
  var totalExpense = 0;
  var rangeB = "B:B";

  for (var i = 0; i < COUNT(rangeB) - COUNTBLANK(rangeB); ++i)
  {
    dateCell = "B" + i;
    dates.push(DATE(dateCell));
  }

  for (var i = 0; i < dates.length(); ++i)
  {
    if (MONTH(dates[i]) == MONTH(TODAY()))
    {
      var range = "A" + i;
      totalExpense += sheet.getRange(range).getValue(); 
    }
  }
  return totalExpense;
}

非常感谢帮助!提前谢谢

2 个答案:

答案 0 :(得分:1)

从我从代码中看到的,你试图获得当月的所有费用并总结它。以下是您可能喜欢的代码示例:

function fillMonthFromChildSheet()
{
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var totalExpense = 0;

  for(var i = 0; i < data.length; i++){

    var d = new Date(data[i][1]);
    var today = new Date();

    if(d.getMonth() == today.getMonth()){

      totalExpense += data[i][0];

    } 
  }
  return totalExpense;
}

我们不是直接在电子表格上使用该值,而是使用数组中的所有数据来计算月份的费用。

答案 1 :(得分:0)

您的问题是COUNT(rangeB) COUNTBLANK(rangeB) DATE(dateCell) MONTH(dates[i]) MONTH(TODAY()),因为您尚未在任何地方定义这些问题。根据您尝试编写Google Apps脚本的内容并使用电子表格功能,例如=COUNT(A1:A2)。这些功能在Google Apps脚本中不起作用

一般来说,只需添加JavaScript,您就可以找到这些类和方法here