VBA计算数组的非空元素

Noob问题:我想要计算一个数组的非空元素?

我的尝试:

Dim Arr(1 To 15) As Double 'populating some of the elements of Arr '... Dim nonEmptyElements As Integer, i As Integer nonEmptyElements = 0: i = 0 For i = LBound(Arr) To UBound(Arr) If Not Arr(i) = "" Then nonEmptyElements = nonEmptyElements + 1 End If Next 

有了这个程序,我得到了错误:在If语句上键入不匹配。

如果尝试将if条件更改为If Not IsEmpty(Arr(i)) Then我得到nonEmptyElements = 15

有关如何完成代码的任何build议?

  Dim Arr(0 To 15) As Double Arr(6) = 1.2 Arr(3) = 7 Dim nonEmptyElements As Integer, i As Integer nonEmptyElements = 0 : i = 0 For i = LBound(Arr) To UBound(Arr) If Not Arr(i) = 0 Then nonEmptyElements = nonEmptyElements + 1 End If Next 

默认情况下double值是0.0,所以检查是否:

 Arr(i) = 0 
 Application.CountA(myarray) 

CountA是用于计算非空值的工作表函数。

仅适用于VBA6,不适用于VBA7。