我在Excel中继承了一个使用用户定义的VBA函数的预测模型文件,我希望将其转移到Google Spreadsheets。这是您在电子表格中调用的自定义函数,标题和衰减是用户在调用函数时定义的两个范围(将始终使用具有1行和不同列数的范围)。
VBA代码:
Function views(titles,decay)
indx = titles.Count
vtotal = 0
For ct = 1 To indx
vtotal = vtotal + titles(ct) * decay(indx - ct + 1)
Next
views = vtotal
End Function
我在Google Apps脚本中执行此操作(无力)的尝试无效:
function views(titles, decay) {
var indx = titles.length;
var vtotal = 0;
for (var i = 0; i <= indx; i++) {
var vtotal = vtotal + titles[i] * decay[indx - i + 1]
}
return vtotal
}
我可以将范围传递给自定义函数吗?是否有其他方法可以得出相同的答案?
感谢您的帮助!
答案 0 :(得分:1)
当电子表格范围传递到函数中时,它们始终表示为2D Javascript数组,即使它们是一行高(或一列宽)。另外,我认为您可能必须在for循环中使用“从零开始”索引进行相同的微小修改。如果范围是一行高,请尝试:
function views(titles, decay) {
var indx = titles[0].length;
var vtotal = 0;
for (var i = 0; i < indx; i++) {
var vtotal = vtotal + titles[0][i] * decay[0][indx - i - 1]
}
return vtotal
}