我想在VBA-Excel 2010中创建自己的函数来计算作为函数arg传递的数组中的某些内容。还有2个条件也通过。问题是我无法让Ubound()函数工作。VBA Ubound()不起作用?
下面的代码:
Function IleGier(Arr As Variant, Champ As String, Data As Date) As Variant 'Integer
' arr/\ cond1/\ cond2/\
Dim i As Integer
Dim ile As Integer
ile = -1
i = 1
Do While i < UBound(Arr, 1)
If Arr(1)(i) = Data Then
If Arr(2)(i) = Champ Then
ile = ile + 1
End If
End If
i = i + 1
Loop
IleGier = ile
'IleGier = Arr(2)(1)
End Function
阵列将永远是2维的。
ex。数组:
15-3-2013 Arg1
15-3-2013 Arg2
15-3-2013 Arg1
15-3-2013 Arg1
16-3-2013 Arg3
16-3-2013 Arg3
16-3-2013 Arg1
为=IleGier(E1:F10;"Arg1";"15-3-2013")
期望回报将是3(日期ARG在这前可能被传递错误bcoz的“”),但它返回#ARG
只要我使用UBound()
功能。
任何提示?
FWIW,这可以很容易地做到没有udf:'= COUNTIFS(F1:F10,“Arg 1“,E1:E10,”15-3-2013“)' – 2013-03-24 21:29:56