javascript - 谷歌电子表格脚本 : "Cannot find function getRange in object Sheet" when creating a simple function

标签 javascript google-apps-script google-sheets

抱歉,这个愚蠢的问题,但我搜索了整个互联网,但找不到学习如何在 Google SpreadSheet Script 中编程的好教程。

我想做一个非常简单的函数,只是为了练习。

function simplesum(input) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets();
  var range = sheet.getRange(input);

var x = 0;

for (var i = 1; i <= range.getNumRows(); i++) {
for (var j = 1; j <= range.getNumColumns(); j++) {

var cell = range.getCell(i, j);

x += (cell.getValue());
}
}

return x;
}

我知道我可以使用 =sum() 来做完全相同的事情。这里的想法是学习如何编程。

当我尝试在单元格中使用我的函数时:(即:=simplesum((A1:A8))它给出了一个错误消息:“TypeError:无法在对象工作表中找到函数 getRange。(第 4 行)”

我该怎么办?

再一次,很抱歉这个愚蠢的问题....

最佳答案

在这种情况下,您将 Google Apps 脚本函数作为自定义函数实现,在电子表格单元格中调用。

当您将范围传递给在电子表格单元格中调用的自定义函数时,您传递的不是范围对象或范围引用,而是二维 Javascript 值数组。所以您的自定义函数应该只处理该数组。

function simplesum(input)
{
  var x = 0;
  for (var i = 0; i < input.length; i++)
  {
    for (var j = 0; j < input[0].length; j++)
    {
      x += input[i][j];
    }
  }
  return x;
}

关于javascript - 谷歌电子表格脚本 : "Cannot find function getRange in object Sheet" when creating a simple function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21995507/

相关文章:

javascript - 为什么我的 anchor 标签滚动不流畅?

python - 如何从 Python 脚本向 Google App Script API 传递参数?

javascript - Highcharts :Uncaught TypeError: $(. ..).highcharts 不是函数

google-apps-script - 如何使用 Google-apps-script 从延迟加载的网页(通过 API)抓取数据?

google-apps-script - 有没有办法访问 google-apps-script 中电子表格范围的验证规则

javascript - Google表格撤消/重做功能

java - 未经授权收集Google表格信息

google-sheets - Google 表格错误 "Array Arguments to SUMIFS are of different size"

javascript - 当语句成立时运行函数

javascript - 从 JSON 对象 KEYS 创建字符串 - Vanilla JavaScript 或 lodash