我有一个包含大约60个数据点的列,我需要将VBA中的前10个值相加。我尝试使用
WorksheetFunction.Sum("LARGE('Sheet1'!A1:A" & lRow & ",{1,2,3,4,5,6,7,8,9,10})")
但它给我一个运行时错误。
此外,这只是一个测试代码。我的最终代码将涉及拉出前10个值并将它们从一个工作簿中求和并将该数字输入另一个工作簿。我不确定这是否会改变,但这是我的意图。
答案 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