VBA获取功能值

时间:2015-03-05 14:36:00

标签: vba excel-vba excel

如何返回此vba函数的值?如果我将debug.print添加到函数本身,它将打印正确的值。

Sub testIt()
Debug.Print getAccountNumber("keyB")
End Sub

Function getAccountNumber(myKey)
Dim c As Collection
Set c = New Collection
c.Add "4005", "keyA"
c.Add "4015", "keyB"
c.Add "4030", "keyC"
c.Item (myKey)
End Function

2 个答案:

答案 0 :(得分:3)

您必须在函数内的某处设置函数的返回值。在上面的示例中,您将执行类似

的操作
getAccountNumber = c.Item (myKey)

退出函数时存储在getAccountNumber中的任何内容都会返回到调用它的内容。我还要补充说,指定函数返回的内容被认为是一种好习惯,在这种情况下,您可能应该将函数定义为Function getAccountNumber(myKey) as String

答案 1 :(得分:2)

通过将结果分配给函数名称来从函数返回值:

Function getAccountNumber(myKey)
    Dim c                     As Collection
    Set c = New Collection
    c.Add "4005", "keyA"
    c.Add "4015", "keyB"
    c.Add "4030", "keyC"
    getAccountNumber = c.Item(myKey)
End Function