传递动态范围:Google脚本

时间:2014-03-26 15:35:30

标签: javascript google-apps-script google-api range

我正在尝试编写一个自定义函数,该函数将计算并返回包含单个列信息的单元格数。我正在使用A(x):Z(x)的范围,我似乎无法动态传递这些,所以我每次都可以获得用户定义的范围。

编辑:我现在收到的当前错误说:缺失)在参数列表之后。 (第10行,文件“更新次数”)

到目前为止,我有这个......

function updateNum(row1,col1,row2,col2)
{
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = ss.getSheetByName("report status");
 var r = s.getActiveRange(row1+col1:row2+col2); <---Line with error
 return (range.length-2)/2
}

关于我如何通过该范围的任何建议?

感谢, 亚历山大

2 个答案:

答案 0 :(得分:0)

更改以下行:

var r= s.getRange(row1, col1, row2-row1+1, col2-col1+1); 
但是,如果不能解决你的问题,那么后面的界限是无意义的。 &#34;范围&#34;没有宣布。我不知道你想去哪里。请写一些伪代码。

如果您想要的是计算其中包含信息的单元格数量,只需使用电子表格本机函数

counta()

答案 1 :(得分:0)

自定义函数无法实现,因为它们具有确定性。也就是说,在给定相同输入的情况下,它们将返回相同的结果。 在你的情况下,即使你修复了错误,你仍然没有通过实际输入只是它的范围限制。因此,如果范围内的数据发生更改,您仍然会传递相同的输入限制,因此将返回先前的缓存结果。 有很多方法可以传递额外的参数,这些参数总是像&#39; now()&#39;那样会有性能问题,因为它会不断重新计算。