在multidimensional array中求和时,types不匹配错误

我有一个二维数组,我试图添加一个维度。 二维数组是types变体,可能有一些元素为空(“”)

这是迄今为止的代码

'newArray is 2D Array Function SumColumn(newArray As Variant, index As Integer) As Double Dim tempArray() As Double ReDim tempArray(1 To UBound(newArray)) For i = 1 To (UBound(newArray)) tempArray(i) = CDbl(newArray(i, index)) Next SumColumn = Application.WorksheetFunction.Sum(tempArray) End Function 

当我运行上面的代码时,出现types不匹配错误。 请帮我debugging

你可能会得到一个Type mismatch因为CDbl(newArray(i, index))实际上可能不是一个数字。

这对我有用。 请修改代码以满足您的需求。

为了演示目的,我将Excel范围存储到二维数组中,然后将其转换为一维临时数组。 一旦完成,我只是将相关的Numbers存储在双数组中,并最终计算总和。

可以说,工作表看起来像这样

在这里输入图像说明

 Option Explicit Sub Sample() Dim MyAr, TempAr() Dim dAr() As Double Dim n As Long, i As Long MyAr = ActiveSheet.Range("A1:A10").Value TempAr = Application.Transpose(MyAr) ReDim dAr(0 To 0) n = 0 For i = LBound(TempAr) To UBound(TempAr) If Len(Trim(TempAr(i))) <> 0 Then If IsNumeric(Trim(TempAr(i))) Then ReDim Preserve dAr(0 To n) dAr(UBound(dAr)) = Trim(TempAr(i)) n = n + 1 End If End If Next i Debug.Print Application.WorksheetFunction.Sum(dAr) End Sub 

这是输出

在这里输入图像说明