Sub TestExcelSumProduct()
Dim vArray(2)
vArray(0) = Array(1, 2, 3)
vArray(1) = Array(2, 3, "4")
vArray(2) = Array(3, 4, "This is not a number")
Dim var As Variant
var = SumProduct(vArray(0), vArray(1), vArray(2))
Debug.Print var, TypeName(var)
End Sub
Function SumProduct(ParamArray Arrays() As Variant)
Dim vArray As Variant
Dim vElement As Variant
Dim product As Variant
Dim sum As Variant
[COLOR="Green"] 'traverse arrays[/COLOR]
For Each vArray In Arrays()
product = 1
[COLOR="Green"] 'traverse array elements[/COLOR]
For Each vElement In vArray
If IsNumeric(vElement) Then
[COLOR="Green"] 'multiply numeric array members[/COLOR]
product = product * vElement
Else
[COLOR="Green"] 'treat non-numeric members as zeros[/COLOR]
product = 0
Exit For
End If
Next
sum = sum + product
Next
SumProduct = sum
End Function