我需要在双精度数组中求和一部分元素。举个简单的例子 考虑一个包含10个元素的数组:
Dim Array(1 To 10) As Double
其中每个元素都被赋予了一些值。 VB中是否有一个函数可以将前5个元素相加?显然这可以通过循环解决,但有一个单行解决方案吗?我想保持我的代码一致。我尝试使用SUM但没有成功。
谢谢!
答案 0 :(得分:3)
不,VB6中没有内置的求和功能可以满足您的需求,但您可以轻松编写一个:
Public Function SumRange(ByRef dblArray() As Double, Optional ByVal StartRange As Long = -1, Optional ByVal Length As Long = -1)
'-1 on StartRange indicates start at low bound
If StartRange = -1 Then
StartRange = LBound(dblArray)
End If
'-1 on Length indicates to span all elements to the end of the array
If Length = -1 Then
Length = UBound(dblArray) - StartRange - 1
End If
Dim dTotal As Double
Dim lNdx As Long
For lNdx = StartRange To StartRange + Length - 1
dTotal = dTotal + dblArray(lNdx)
Next lNdx
SumRange = dTotal
End Function
请注意我没有sytaz检查这个,所以请注意错别字。它可以使用如下:
dResult = SumRange(myArray) 'summ all
dResult = SumRange(myArray, 3) 'sum all starting at offset 3
dResult = SumRange(myArray, , 2) 'sum the the first 2 elements
dResult = SumRange(myArray, 2, 4) 'sum a range start at 2 and with length of 4
您可以修改该方法以获取另一个可选的布尔值,以指定您是否可以容忍(忽略)越界。现在,如果要求总结的元素数量超过数组中存在的元素,则会产生错误。