无法用VBA累计数组元素的总和

时间:2013-04-15 22:26:54

标签: arrays vba sum

我正在尝试累积4个值维度(4,1)的excel列中的值的总和。

所以,我构建了下面的代码。对于Result侧的列中的第一行,它应该保持与原始Array中相同的值。 但是,一旦它大于第一行,它应该得到结果的前一个元素(i-1)并向其添加当前列元素(i)。

VBA告诉我下标超出范围:/我无法弄清楚为什么......所以我甚至不知道我的代码是否符合我的要求。

Sub CumulativeSum()
    Dim i As Integer
    Dim j As Integer
    Dim rColumn() As Variant
    Dim result() As Variant
    ReDim result(1 To 4)
    rColumn = Worksheets("Sheet1").Range("E1:E4").Value2

    For i = 1 To 4
        result(1) = rColumn(1, 1)
        For j = 2 To 3
            result(j) = rColumn(j, 1) + result(j - 1)
        Next j
   Next i
   Dim dest As Range
   Set dest = Worksheets("Sheet1").Range("F1")
   dest.Resize(4, 1).Value = result
End Sub

2 个答案:

答案 0 :(得分:2)

Sub CumulativeSum()

    Dim dest As Range
    Dim i As Integer
    Dim j As Integer
    Dim rColumn() As Variant
    Dim result() As Variant
    ReDim result(1 To 4)
    rColumn = Worksheets("Sheet1").Range("E1:E4").Value2

    result(1) = rColumn(1, 1)
    For j = 2 To 4
        result(j) = rColumn(j, 1) + result(j - 1)
    Next j

    Set dest = Worksheets("Sheet1").Range("F1")
    dest.Resize(4, 1).Value = Application.Transpose(result)

End Sub

答案 1 :(得分:1)

没有足够的代表来添加评论但是......你收到错误的原因是因为单元格的语法是单元格([Row],[Column])。您将其作为单元格([Column],[Row])输入。

尝试范围(单元格(1,5),单元格(4,5))。