0

我有一个包含 1000 个条目的一维数组。我想遍历这个数组的一部分并应用计算该子组的平均值。到目前为止我所做的看起来像这样:

        Temp = Array(myArray)

        Temp_Range = Application.Index(Temp, Evaluate("Row(1:10)"))

        Average(i) = Application.Average(Temp_Range)

通过这个我可以计算前 10 行的平均值。然而,这根本不是动态的,我想知道是否有另一种方法来处理这个数组的子组(这样我最终可以循环遍历它们)?

谢谢你的帮助,我只是无法弄清楚这个......

更新: 我在这里用 St.Dev 尝试了你的代码(不是平均的)。有用!非常感谢。但是,代码真的很慢。有没有办法让它更快?

这里的循环: Return 是一个包含 1000 个返回值的数组。我的目标是计算一年的每日回报数据的标准差。

    For i = 2 To n

    If Year(Dates(i)) > Year(Dates(i - 1)) Then

        Test = Application.Index(Return, Evaluate("Row(" & C & ":" & (i - 2) & ")"))

        Vola(M) = Application.StDev(Test) * Sqr(252)

        M = M + 1
        C = i - 1

    Else

        Test = Application.Index(Return, Evaluate("Row(" & C & ":" & (i - 1) & ")"))

        On Error Resume Next
        Vola(M) = Application.StDev(Test) * Sqr(252)

    End If

Next i
4

1 回答 1

0

在不知道如何循环这些内容的情况下,您可以:

Dim frstRow as Long, lstRow as Long

'within your loop, assign the values to frstRow, lstRow

Temp_Range = Application.Index(Temp, Evaluate("Row(" & frstRow & ":" & lstRow &")"))
于 2013-04-25T13:22:15.473 回答