对不起,对于这个愚蠢的问题,但我已经搜索了整个互联网,但我找不到一个好的教程来学习如何在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行)”
我该怎么办?
再次,抱歉这个愚蠢的问题......
答案 0 :(得分: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;
}
答案 1 :(得分:3)
var sheet = ss.getSheets();
返回一个工作表数组,这意味着sheets.getRange(输入)将抛出该错误。试试这个:
var sheet = ss.getSheets()[0];
选择工作表数组的第一张工作表。 Google为此提供了一些不错的文档。例如,here's its documentation on getRange()。请注意,它也使用ss.getSheets()[0]。希望这有帮助!
答案 2 :(得分:3)
这是有效的:
CurrentPageChanged