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。