函数使用数组

时间:2017-04-13 07:55:18

标签: excel vba excel-vba

我正在尝试编写一个使用数组上限和下限的函数,并返回元素数。由于我对功能缺乏经验,但令人困惑,但我仍然提出以下代码:

Function numelement(LBound(array1), UBound(array2)) as Integer
    numelement =  UBound(array1) - LBound(array2)
End Function

这段代码是否正确,我知道它很简单,但这就是这段代码的目的。

2 个答案:

答案 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