我正在尝试累积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
答案 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))。