我正在尝试编写一个使用数组上限和下限的函数,并返回元素数。由于我对功能缺乏经验,但令人困惑,但我仍然提出以下代码:
Function numelement(LBound(array1), UBound(array2)) as Integer
numelement = UBound(array1) - LBound(array2)
End Function
这段代码是否正确,我知道它很简单,但这就是这段代码的目的。
答案 0 :(得分:0)
如果您真的想要一个功能(没有它就可以轻松完成),请尝试以下代码:
Function numelement(array1 As Variant) As Long
numelement = (UBound(array1) - LBound(array1)) + 1 '<-- since array iz zero based
End Function
Sub
测试函数的代码:
Sub TestFunc()
Dim Arr As Variant
Arr = Array("Shai", "Rado", "Tel-Aviv")
MsgBox numelement(Arr)
End Sub
注意:您可以使用:
代替该功能Dim array1 As Variant
array1 = Array("Shai", "Rado", "Tel-Aviv")
MsgBox "number of elements in array are " & UBound(array1 ) + 1
答案 1 :(得分:0)
您不需要此功能。如果您像这样Array()
初始化数组,Ubound +1可以很好地处理元素总数。它是VBA中的内置函数,效果很好:
Option Explicit
Sub TestMe()
Dim myArr As Variant
myArr = Array("A", "B", "C")
Debug.Print LBound(myArr)
Debug.Print UBound(myArr)
End Sub
除非您决定初始化这样的数组:
Dim arr(3 To 4)
arr(3) = 1
arr(4) = 2
然后你应该使用以下内容:
debug.print UBound(myArr)-LBound(myArr)+1