2016-09-04 172 views
3

我無法正常工作。我只想從函數返回數組,我試過的代碼如下。從VBA中的函數返回數組

Sub 
    Dim storeData As Variant: Set storeData = getData 
    Debug.Print storeData(1) 
End Sub 

Function getData() As Variant 
    Dim arr(2) As Variant 
    arr(1) = "ergreg" 
    arr(2) = "1005" 
    getData = arr 
End Function 

不會引發任何錯誤,但沒有什麼是打印到即時窗口

+7

刪除'Set'。 – GSerg

+0

這實際上*應該*給出類型不匹配錯誤。 – Comintern

+0

@ChrisBull看到下面的答案(你的'Debug.Print storeData(1)'將只打印你陣列中3個元素中的第二個) –

回答

-1

我的錯誤 - 感謝@GSerg找到它。

只需要刪除'設置'。那麼簡單

2

如果你想打印所有的數組元素,你需要一個For循環添加到Debug:

Dim storeData As Variant 
Dim i As Long 
storeData = getData 

For i = LBound(storeData) To UBound(storeData) 
    Debug.Print storeData(i) 
Next i 

快速注意事項Dim arr(2) As Variant,意思是arr有3個元素(從0開始),你ar e僅將值分配給第二個和第三個元素。

+1

感謝您的回覆,我把base設置爲1.我不需要打印所有的值,只需要現在的那個。 – ChrisBull