将VBA功能转换为Google Apps脚本功能

时间:2012-08-03 16:52:26

标签: vba google-apps-script

我在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
}

我可以将范围传递给自定义函数吗?是否有其他方法可以得出相同的答案?

感谢您的帮助!

1 个答案:

答案 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
}