使用vb6中的SUM函数对数组中的元素求和

时间:2012-01-05 11:33:53

标签: vb6 sum

我需要在双精度数组中求和一部分元素。举个简单的例子 考虑一个包含10个元素的数组:

  Dim Array(1 To 10) As Double 

其中每个元素都被赋予了一些值。 VB中是否有一个函数可以将前5个元素相加?显然这可以通过循环解决,但有一个单行解决方案吗?我想保持我的代码一致。我尝试使用SUM但没有成功。

谢谢!

1 个答案:

答案 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

您可以修改该方法以获取另一个可选的布尔值,以指定您是否可以容忍(忽略)越界。现在,如果要求总结的元素数量超过数组中存在的元素,则会产生错误。