使用VBA中的数组函数返回值的Cast数组

时间:2014-05-13 09:47:16

标签: arrays function vba

我只是不确定以下问题的语法。我有一个函数,我需要传入一个值,然后返回一个数组。

Function billable(val As String) As Variant()

    Dim arr(1 To 3) As Variant
    arr(1) = Left(val, 1)
    arr(2) = Left(val, 2)
    arr(3) = Left(val, 3)
    billable = Application.Transpose(arr)

End Function

我的问题是,在另一个过程中如何从返回的billable()数组中获取值但是同时将字符串val传递给它?

例如

myDesiredValue1 = billable((val),1)
myDesiredValue2 = billable((val),2)
myDesiredValue3 = billable((val),3)

只是要指出,如果我必须使用临时数组变量,那不是问题。我给了这个方法,但无法解决:(

干杯

克里斯

2 个答案:

答案 0 :(得分:1)

我认为这应该有用。

Dim arr(1 To 3) As Variant
Dim myDesiredValue1 As Variant
Dim val As String

Function billable(val As String) As Variant()

    arr(1) = Left(val, 1)
    arr(2) = Left(val, 2)
    arr(3) = Left(val, 3)
    billable = Application.Transpose(arr)
End Function

Public Sub checkTest()
    val = "Hello"
myDesiredValue1 = billable(val)
myDesiredValue2 = billable(val)
myDesiredValue3 = billable(val)
For i = 1 To UBound(myDesiredValue1)
    Debug.Print myDesiredValue1(i, 1)
    Debug.Print myDesiredValue2(i, 1)
    Debug.Print myDesiredValue3(i, 1)
Next i
End Sub

答案 1 :(得分:0)

答案如下

billable(val)(1,1)