Google电子表格脚本:创建简单函数时"无法在对象表中找到函数getRange"

use*_*814 6 javascript google-sheets google-apps-script

对不起,对于这个愚蠢的问题,但我搜索了整个互联网,我找不到一个好的教程来学习如何在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;
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用= sum()做同样的事情.这里的想法是学习如何编程.

当我尝试在单元格中使用我的函数时:(即:= simplesum((A1:A8))它给出一个错误说:"TypeError:在对象表中找不到函数getRange.(第4行)"

我该怎么办?

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

Ada*_*amL 4

在本例中,您将 Google Apps 脚本函数实现为自定义函数,并在电子表格单元格中调用。

当您将范围传递给电子表格单元格中调用的自定义函数时,您传递的不是范围对象或范围引用,而是一个 2-D 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;
}
Run Code Online (Sandbox Code Playgroud)