我需要在双精度数组中求和一部分元素.举个简单的例子 考虑一个包含10个元素的数组: Dim Array(1 To 10) As Double 其中每个元素都分配了一些值. VB中是否有一个函数可以将前5个元素相加?
考虑一个包含10个元素的数组:
Dim Array(1 To 10) As Double
其中每个元素都分配了一些值. VB中是否有一个函数可以将前5个元素相加?显然这可以通过循环解决,但有一个单行解决方案吗?我想保持我的代码一致.我尝试使用SUM但没有成功.
谢谢!
不,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
您可以修改该方法以获取另一个可选的布尔值,以指定您是否可以容忍(忽略)越界.现在,如果要求总结的元素数量超过数组中存在的元素,则会产生错误.