我正在尝试使用一些自定义函数创建电子表格。这张表的目的是在一个测验比赛中保持得分。第一行有问题编号,第二行是得分,第三行是该问题的犯规数。
在注意到分数计算的一些问题之后,我能够将问题缩小到代码的一部分,在那里我加起来在当前问题之前发生的犯规。似乎无论我做什么,代码总结了问题行,而不是犯规行。
非常奇怪的是,无论我将参考单元格更改为什么,它总是会产生相同的结果(即它仍然引用与其一直相同的问题行)。
我不确定这是否有意义,但我已经制作了一个示例表here,这样你就可以看到我在说什么,并试图弄清楚发生了什么。请记住,我很清楚我可以使用简单的内置公式完成我在示例表中要做的事情,但由于无法在Apps脚本端使用工作表公式,所以我必须创建我自己的版本。我已经让这个例子可以为任何有链接的人编辑,所以你应该可以完全访问它;但是如果你有问题,请告诉我,我会看到我能做些什么来解决它。
答案 0 :(得分:1)
在For循环中,您要对索引求和而不是值:
尝试:
for (var PrevValue in PrevValues[0]) {
Sum = Sum + Number(PrevValues[0][PrevValue]);
}
编辑: 您还需要考虑传入单个单元格而不是范围(= mySum($ B4:B4))的情况,因为在这种情况下,值将直接传递而不是数组。
if(PrevValues instanceof Array){
for (var PrevValue in PrevValues[0]) {
Sum = Sum + Number(PrevValues[0][PrevValue]);
}
}else
Sum = PrevValues;