将VBA中的前10个值相加

时间:2017-07-14 07:35:29

标签: excel-vba vba excel

我有一个包含大约60个数据点的列,我需要将VBA中的前10个值相加。我尝试使用

WorksheetFunction.Sum("LARGE('Sheet1'!A1:A" & lRow & ",{1,2,3,4,5,6,7,8,9,10})")

但它给我一个运行时错误。

此外,这只是一个测试代码。我的最终代码将涉及拉出前10个值并将它们从一个工作簿中求和并将该数字输入另一个工作簿。我不确定这是否会改变,但这是我的意图。

2 个答案:

答案 0 :(得分:0)

不应使用Sum - 函数,而应使用SumProduct - 函数...

只需使用以下代码(如果您想在vba中使用它,请将其评估为带有Evaluate - 函数的字符串)

=SUMPRODUCT(LARGE(rng,ROW(INDIRECT('1:N'))))

您的范围为rng,条目数量(在您的情况下为10)为N

答案 1 :(得分:0)

在mycode中,mySum就是结果。

Sub test()

    Dim mySum As Double
    Dim lRow  As Long, i As Integer

    lRow = 12
    With WorksheetFunction
        For i = 1 To 10
            mySum = mySum + .Large(Range("a1:a" & lRow), i)
        Next i
    End With
    Debug.Print mySum
End Sub
相关问题